Компиляция SWF из php с использованием mxmlc и "exec" - загрузка файла конфигурации, но без SWF в браузере - PullRequest
1 голос
/ 01 августа 2011

Я на сервере RedHat, с простой страницей PHP, которая имеет форму, с вводом имени, телефона и URL-адреса.

Когда форма отправлена, я запускаю команду для компиляции SWF-файла, используя mxmlc. Команда такая:

$generate_command1 = "export _JAVA_OPTIONS=\"-Xms32m -Xmx64m\"; /opt/flex/bin/mxmlc -define+=NAMES::Name,\"\'$name\'\" -define+=NAMES::Phone,\"\'$phone\'\" -define+=NAMES::Website,\"\'$url\'\" -output /path/to/my/webserver/httpdocs/swfbuilder/generated.swf DynamicTextTest.as";

$last_line = exec($generate_command1, $out);
print_r($last_line);

Результат всегда:

Loading configuration file /opt/flex/frameworks/flex-config.xml

Когда я запускаю ту же команду из ssh на сервере, я на самом деле генерирую SWF. То есть

Picked up _JAVA_OPTIONS: -Xms32m -Xmx64m
Loading configuration file /opt/flex/frameworks/flex-config.xml
/var/www/vhosts/tag.domandtom.com/httpdocs/swfbuilder/generated.swf (945 bytes)
[root@htmlfive swfbuilder]# 

И каталог, и файлы были CHOWN'd для владельца, а CHMOD - для 775 ... Так что я делаю неправильно, чтобы заставить это работать с веб-страницы? Должен ли я получить разветвленный процесс и дождаться его завершения? Спи

EDIT:

Я изучил fcsh и другие mxmlc / java связанные вопросы.

1 Ответ

2 голосов
/ 09 августа 2011

Пересматривая код, я заметил, что не должен был избегать одинарных кавычек.Они действительны для фактического выполнения, и я должен только избегать двойных кавычек для php в этом случае ...

Окончательный код выглядит следующим образом (для дальнейшего использования):

<?php 
$name = "generated";
$phone = "";
$url = "";

if(isset($_POST['name'])) {
    $name = $_POST['name'];
}
if(isset($_POST['phone'])) {
    $phone = $_POST['phone'];
}
if(isset($_POST['url'])) {
    $url = $_POST['url'];
}

$swfname = $name . ".swf";

$generate_command1 = "export _JAVA_OPTIONS=\"-Xms32m -Xmx64m\"; /opt/flex/bin/mxmlc -define+=NAMES::Name,\"'$name'\" -define+=NAMES::Phone,\"'$phone'\" -define+=NAMES::Website,\"'$url'\" -output /path/to/my/webserver/httpdocs/swfbuilder/$swfname DynamicTextTest.as";

exec($generate_command1, $out);
?>
...