gpt4 book ai didi

java - 从 Java (Scala) 调用 PHP 代码并获取结果

转载 作者:行者123 更新时间:2023-11-30 07:00:48 24 4
gpt4 key购买 nike

这似乎在多个地方被问到,并被标记为“已关闭”和“偏离主题”。然而,人们似乎不断遇到这个问题

invoking a php method from java (已关闭)

Calling PHP from Java (已关闭)

How can I run PHP code within a Java application? (已关闭)

This answer最后一个问题部分回答了这个问题,但没有阐明如何读取输出。

我终于找到了问题的答案:

如何从 Java 中运行 PHP 程序并获取其输出?为了提供更多上下文,有人给了我一个 PHP 文件,其中包含某些返回字符串的方法 foo 的代码。我们如何从 JVM 调用它?

在 Google 上搜索没有帮助,因为我发现的所有文章都没有解释如何从 Java 调用 PHP,而是解释如何从 PHP 调用 Java。

下面的答案解释了如何使用 PHP/Java 桥来执行此操作。

答案在 Scala 中,但对于 Java 程序员来说很容易阅读。

最佳答案

this SO answer 创建的代码和 this example :

package javaphp

import javax.script.ScriptEngineManager
import php.java.bridge._
import php.java.script._
import php.java.servlet._

object JVM{ // shared object for PHP/JVM communication
var out = ""
def put(s:String) = {
out = s
}
}

object Test extends App {
val engine = (new ScriptEngineManager).getEngineByExtension("php")
val oldCode = """
<?php
function foo() {
return 'hello';
// some code that returns string
}
?>
"""
val newCode = """
<?php
$ans = foo();
java('javaphp.JVM')->put($ans);
?>
"""+oldCode

// below evaluates and returns
JVM.out = "" //reset shared output
engine.eval(newCode)
println("output is : "+JVM.out) // prints hello
}

运行此文件:

安装PHP、Scala并正确设置路径。然后使用上面的代码创建一个文件php.scala。然后运行:

scalac php.scala

scala javaphp.Test

关于java - 从 Java (Scala) 调用 PHP 代码并获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40960138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com