使用mxmlc和“exec”从php编译swf - 加载配置文件,但在浏览器中没有瑞士法郎 [英] Compiling swf from php using mxmlc and "exec" - loading config file but no swf in browser

查看:198
本文介绍了使用mxmlc和“exec”从php编译swf - 加载配置文件,但在浏览器中没有瑞士法郎的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在RedHat服务器上,有一个简单的PHP页面,它有一个表单,输入名字,电话和网址。

当提交表单时,我运行一个命令来使用mxmlc编译swf。这个命令是这样的:

$ $ $ $ $ $ $ c $ $ 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);

结果总是:

 加载配置文件/opt/flex/frameworks/flex-config.xml 



<当我从ssh运行相同的命令到服务器,我实际上得到一个瑞士法郎生成。即

 拾取_JAVA_OPTIONS:-Xms32m -Xmx64m 
加载配置文件/ opt / flex / frameworks / flex-config。 xml
/var/www/vhosts/tag.domandtom.com/httpdocs/swfbuilder/generated.swf(945字节)
[root @ htmlfive swfbuilder]#

目录和文件已经被占用,拥有775 CHMOD'd ...所以我做错了什么让这个工作从网页?我应该有一个分叉的过程,并等待它完成?睡觉?



编辑:

我查看了 fcsh 和其他 mxmlc / java 相关的问题。

解决方案

在重新审查代码时,我注意到,没有逃脱单引号。它们对于实际的执行是有效的,在这种情况下,我应该只能使用PHP的DOUBLE引号...
$ b

最终的代码如下所示(供将来参考):

 <?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文件;
$ b $ 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);
?>


I'm on a RedHat server, with a simple PHP page that has a form, with inputs for name, phone, and url.

When the form is submitted, I run a command to compile a swf using mxmlc. The command is this :

$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);

The result is always :

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

When I run the same command from ssh into the server, I actually get a swf generated. I.e.

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]# 

Both directory and files have been CHOWN'd for ownership and CHMOD'd for 775... So what am I doing wrong to get this to work from the web page? Should I have a forked process and wait until it's complete? Sleep?

EDIT:

I've looked into fcsh and other mxmlc / java related questions.

解决方案

In re-reviewing the code, I noticed that I shouldn't have escaped the single-quotes. They're valid for the actual execution and I should only escape DOUBLE quotes for php in this instance...

The final code looks like this (for future reference) :

<?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);
?>

这篇关于使用mxmlc和“exec”从php编译swf - 加载配置文件,但在浏览器中没有瑞士法郎的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆