我不完全确定标题的措辞是否正确,但我正在尝试做的是从Lift框架内运行并执行PHP文件。
我没有对驻留在服务器上的PHP文件进行任何url查询,更感兴趣的是以某种方式通过我的Scala / Lift应用程序运行PHP运行时。
使用案例:我将我的应用打包成.war文件,我通过云提供商托管。我将代码片段上传到所述应用程序,然后运行php文件并执行必要的操作。
我见过有关Bianca的各种帖子,但我希望保持这种设置,并且只需要PHP二进制本身和一些代码就可以让它飞起来。
提前致谢,如果您需要我详细说明,请告诉我。)
答案 0 :(得分:2)
“永远不要说永远,因为恐惧等限制通常只是一种 错觉。”
- 迈克尔乔丹
你真正需要的是一个开源(GPL),可嵌入的完整PHP 5实现,完全用Java编写!
Caucho's Quercus PHP Java runtime就是这样,它将允许您在没有外部库或本机代码的Java应用程序中运行PHP。
以下是我在this answer
中找到的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文件内容等构建。
让我们知道你是如何上场的; - )
答案 1 :(得分:0)
这是一个奇怪的要求,但如果这是你需要做的,你可以使用ProcessBuilder来执行PHP脚本from the command line并与之交互。