Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中运行Quercus PHP_Java_Quercus - Fatal编程技术网

在Java中运行Quercus PHP

在Java中运行Quercus PHP,java,quercus,Java,Quercus,我试图从我的Java应用程序中运行一些PHP代码段 我看到这个问题: 这简单地表明: import com.caucho.quercus.QuercusEngine; QuercusEngine engine = new QuercusEngine(); engine.setOutputStream(System.out); engine.executeFile("src/test.php"); 我已经看到这表明: QuercusEngine engine = new QuercusEng

我试图从我的Java应用程序中运行一些PHP代码段

我看到这个问题:

这简单地表明:

import com.caucho.quercus.QuercusEngine;

QuercusEngine engine = new QuercusEngine();
engine.setOutputStream(System.out);
engine.executeFile("src/test.php");
我已经看到这表明:

QuercusEngine engine = new QuercusEngine();
engine.setIni("foo", "bar");
engine.execute("<?php var_dump(ini_get('foo')); ?>");
对于任何函数,我都会得到相同的结果——strlen、strcmp、phpinfo等等

如……所述

war文件可以在Java应用程序服务器上运行,例如 玻璃鱼,即它可以在树脂外运行。这是战争档案 包括Quercus解释器和PHP库

我已经从该页面下载了war文件()

我在跑步

$ javac -cp 'WEB-INF/lib/resin.jar;.' TestQuercus.java
$ java -cp 'WEB-INF/lib/resin.jar;.' TestQuercus
完整的文件是

import com.caucho.quercus.QuercusEngine;

public class TestQuercus {

    public static void main(String[] args) throws Exception {
    QuercusEngine engine = new QuercusEngine();
    engine.setIni("foo", "bar");
    engine.execute("<?php var_dump(ini_get('foo')); ?>");
    }

}
其中foo.php包括

那么我怎样才能从那里到达一个工作的引擎呢

谢谢,

的工作原理如下

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

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

String code = "<?php $foo = strlen('abc'); print $foo; return 'yikes'; ?>";
Object o = engine.eval(code);
System.out.println(o);
导入javax.script.ScriptEngine;
导入com.caucho.quercus.script.QuercusScriptEngineFactory;
queryScriptEngineFactory=新queryScriptEngineFactory();
ScriptEngine=factory.getScriptEngine();
字符串代码=”;
对象o=发动机评估(代码);
系统输出打印ln(o);

这是一个bug。我刚把它改成4.0.33,应该很快就会出来。如果愿意,您可以从我们的公共svn存储库中自行构建Quercus:

svn checkout svn://svn.caucho.com/home/svn/svnroot/resin/trunk resin
cd resin
ant
jar将是resin/lib/resin-kernel.jar和resin/lib/quercus.jar


有关错误参考,请参阅。

Hi。谢谢你的回复。不过,我现在将自己的答案标记为答案,因为它适用于分布式源(vs trunk)。
import javax.script.ScriptEngine;
import com.caucho.quercus.script.QuercusScriptEngineFactory;

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

String code = "<?php $foo = strlen('abc'); print $foo; return 'yikes'; ?>";
Object o = engine.eval(code);
System.out.println(o);
svn checkout svn://svn.caucho.com/home/svn/svnroot/resin/trunk resin
cd resin
ant