【问题标题】:How can I run PHP code within a Java application? [duplicate]如何在 Java 应用程序中运行 PHP 代码? [复制]
【发布时间】:2012-10-15 13:51:53
【问题描述】:

可能重复:
Calling PHP from Java

我想知道如何在 Java 中运行 PHP 代码。使用 ScriptEngine,我可以运行 JavaScript:

String code="print(5+5);"; //sample bit of code
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByExtension("js");
try {
    engine.eval(code);
} catch (ScriptException ex) {
    //catch statement
}

为了运行它,我导入了库 javax.script.*。我相信要运行 PHP 我必须导入一个类似的库,并将上面代码的第三行更改为扩展名php。不幸的是,我不知道这是哪个库。我用谷歌搜索试图找到答案,并遇到了 PHP/Java Bridge 库,但我不认为这正是我想要的,因为它专注于通过 PHP 运行 Java(据我所知)。

我希望我没有遗漏任何东西,任何帮助将不胜感激!

【问题讨论】:

  • This 可能就是您要找的。​​span>
  • @NickolayRatchev 或 Edmund,你们中的一个人应该继续为此写一个答案,因为你们俩似乎都没有弄清楚。
  • @Edmund:您应该将其发布为答案,而不是评论。我继续删除了您问题的“更新”部分,因为它实际上是您自己问题的答案
  • 基于以下答案的更完整的解决方案:stackoverflow.com/q/40960138/243233

标签: java php


【解决方案1】:

解决此问题的方法是从http://php-java-bridge.sourceforge.net/pjb/download.php 下载文件JavaBridge.jarphp-script.jarphp-servlet.jar,然后将它们导入到您的类中:

import javax.script.*;

import php.java.bridge.*;
import php.java.script.*;
import php.java.servlet.*;

然后代码就可以像以前一样运行了:

String code="echo 5+5;"; //sample bit of code
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByExtension("php");
try {
    engine.eval(code);
} catch (ScriptException ex) {
    //catch statement
}

【讨论】:

  • 感谢您撰写答案。
  • 三个导入:import php.java.bridge.*;导入 php.java.script.*;导入 php.java.servlet.*;没用,不是吗?
  • 不,ScriptEngine 需要三个导入才能运行 PHP。
  • 给出一个 php not found 错误。帮忙?
  • 如何读取 php 代码的输出(比如是否返回回显)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 2020-01-18
相关资源
最近更新 更多