从PHP脚本调用fcsh

时间:2008-12-07 19:41:21

标签: php flex fcsh

我的问题是Flex的fcsh是否可以在PHP脚本中调用。这是背景:

我创建了一个简单的过程,通过将文本文件转换为.mxml文件并使用mxmlc编译器编译为.swf文件来创建简单的测验/教程。这在命令行中运行良好,但我想通过创建一个Web界面来简化这个过程。我最初尝试使用PHP的exec()函数没有奏效。我用来创建.mxml文件的Python脚本工作正常(使用exec()),但是我无法让mxmlc编译器工作。

在网站和本网站上搜索后,我相信使用fcsh(而不是mxmlc)可能是最佳选择。使用fcsh肯定会更快地编译.mxml文件(在第一次运行之后),我认为fcsh可以作为可以从PHP调用的服务启动。

另一方面,也许我接近这个错误的方式。编写一个调用fcsh并避免使用PHP的Flex应用程序会不会更好?

编辑:使用fcshctl作为他在下面的回答中建议的hasseg非常有效。谢谢阿里。

3 个答案:

答案 0 :(得分:1)

从脚本中调用fcsh的问题在于它作为交互式shell 而不是获取命令行参数,编译和返回退出状态。我可以通过不同的方式来解决这个问题,我在this blog post of mine中列出了这里,我主要讨论fcshctl(这是我自己的解决方案),但在帖子的底部我是'我们还列出了其他类似的解决方案,以便将fcsh集成到非标准构建工作流程中。

答案 1 :(得分:0)

php中有一些其他方法可以执行外部脚本。它们是exec(),passthru(),system()和反引号,即1键左侧的键。每个人都有不同的目的和回报机制。

您可能必须将执行可执行文件的命令放入脚本中,并通过其中一个函数调用该脚本。

答案 2 :(得分:0)

是否有一个特殊原因导致您无法直接使用mxmlc?似乎比fcsh更容易打电话。只需在XML文件中指定所有编译器选项,就像mxmlc -load-config path/to/config.xml一样运行它。您可以在FLEX_HOME/frameworks/flex-config.xml中找到XML配置格式的示例。