0

我不完全确定标题的措辞是否正确,但我试图做的是从 Lift 框架内运行和执行 PHP 文件。

我不是在对驻留在服务器上的 PHP 文件进行任何 url 查询,而是对通过我的 Scala/Lift 应用程序以某种方式让 PHP 运行时工作更感兴趣。

用例:我将我的应用程序打包到一个 .war 文件中,我通过云提供商托管它。我将代码片段上传到该应用程序,然后该应用程序运行 php 文件并执行任何必要的操作。

我看过关于 Bianca 的各种帖子,但我希望保持这种设置轻巧,只需要 PHP 二进制文件本身和一些代码就可以让它飞起来。

在此先感谢,如果您需要我详细说明,请告诉我:)

4

2 回答 2

3

“永远不要说永远,因为限制,就像恐惧一样,通常只是一种幻觉。”</p>

- 迈克尔·乔丹

您真正需要的是完全用 Java 编写的开源 (GPL)、可嵌入、完整的 PHP 5 实现!

Caucho 的 Quercus PHP Java 运行时就是这样,它可以让您在 Java 应用程序中运行 PHP,而无需外部库或本机代码。

下面是我在这个答案中找到的 Quercus-PHP-in-Java 代码示例

import javax.script.ScriptEngine;
import com.caucho.quercus.script.QuercusScriptEngineFactory;

QuercusScriptEngineFactory factory = new QuercusScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine();

String phpCode = "<?php $foo = strlen('abc'); print $foo; return 'yikes'; ?>"; //PHP Code as String
Object o = engine.eval(phpCode);
System.out.println(o);

将此代码转换为惯用的 Scala 应该不费吹灰之力。显然,“phpCode”变量可以从外部 PHP 文件内容等构造。

让我们知道您的身体情况如何 ;-)

于 2013-04-01T18:37:59.033 回答
0

这有点奇怪,但如果这是您需要做的,您可以使用ProcessBuilder从命令行执行 PHP 脚本并与之交互。

于 2013-03-12T13:06:23.683 回答