当前位置:知识百科 > 正文

java直接调用php文件_php调用java接口的几种方式

更新时间:2026-04-18 13:41 阅读量:109

java怎么调用php的语句是什么

PHP调用JAVA方式

① 背景

在开发招商银行信用卡分期付款功能过程中,在支付成功之后需要对银行的返回数据进行签名验证,因签名加密方式招商银行是不提供的,只提供了相应的JAVA验证类测试例子,而本项目采用的是PHP架构方式,所以呢需要PHP调用JAVA的验证类来测试签名是否正确.

本文档提供一种PHP调用JAVA类的方式来进行招行的支付成功签名验证,本方法也可用于其他银行的JAVA签名验证方式.

名词

解释说明

php-java-bridge

PHP和JAVA的连接桥

编译及安装:

/usr/local/php/bin/phpize

./configure --disable-servlet --with-java=/usr/local/java/,/usr/local/java/jre --with-php-config=/usr/local/php/bin/php-configmake make install

vim /usr/local/php/etc/php.ini

[新增]

extension=java.so

[java]

java.java_home="/usr/local/java/"

java.java="/usr/local/java/jre/bin/java"

重新启动nginx或者apache,输入?php phpinfo();?可以看到java support

Enabled

java bridge

java.log_level

手动启动javaBridge

解压javaBridge.jar,取出java目录下相关的Java.inc文件测试代码:

require_once("java/Java.inc");

$string = new Java("java.lang.String", "HelloWorld");echo $string;

$system=new Java("java.lang.System");

下述描述在实际配置测试过程中可能会碰到的问题及解决方法:

问题1:

configure: error: host_alias is not set. Make sure to run config.guessBack-end configuration failed.

./configure --disable-backend --with-java=JAVA_HOME

configure: error: ./configure.gnu failed for server安装yum install libtool即可

事项1:

取消对这个部分的注释,以便允许对您的 Java 类进行远程访问init-param

param-namepromiscuous/param-name

param-valueOn/param-value

/init-param

个人的实际测试代码如下:

private function _checkSign($strText, $strSign){$ret = false;

try{

$host = ConfigWrapper::load()-services-phpjava-host;if($host != NULL){

define ("JAVA_HOSTS", $host);

}

require_once('java/Java.inc');

java_require(self::CMBJAR);

$pay = new Java('testCdpaySign', self::CERFILE);$result = $pay-checkSign((string)$strText, (string)$strSign);if(java_is_true($result) == 1){

$ret = true;

}catch (\Exception $e) {

Logger::debug("_checkSign = " . $e-getMessage());}

return $ret;

java调用php,php如何获取参数

java 里面有一个URL对象,比如:

在php里面获取参数:

echo $_GET['id'];

这样就获取了

java能远程引用php文件吗?

理论上是可行的.因为php底层是用C封装的,Java有JNI,有RIM,为什么不可以?,但是具体操作起来就比较困难了.如果只是调用php的结果的话,那就直接调用该php文件的url返回结果就行了

如何在java程序中调用php文件

public?String?execPHP(String?scriptName,?String?param)?{

?StringBuilder?output?=?new?StringBuilder();

?BufferedReader?input?=?null;

?String?phpPath?=?"D:/xampp/php/php.exe";

?try?{

??String?line;

??Process?p?=?Runtime.getRuntime().exec(phpPath?+?"?"?+scriptName?+?"?"?+?param);

??input?=?new?BufferedReader(new?InputStreamReader(p.getInputStream()));

??while?((line?=?input.readLine())?!=?null)?{

???output.append(line);

//???p.destroy();//根据系统不同可能需要

??}

??p.destroy();

?}?catch?(Exception?err)?{

??err.printStackTrace();

?}finally{

??if(input?!=?null){

???try?{

???input.close();

???}?catch?(IOException?e)?{

???e.printStackTrace();

???}

?}

?return?output.toString();

//调用php算法

conclusion?=?runPHP.execPHP(ALGORITHM_RESIDUES_URL,imageResiduesId);

//php接收

$id?=?$argv[1];

因为此方法是java开进程直接调用php,所以呢是以内存方式传参

以上就是日讯小常识小编为大家整理的java直接调用php文件,php相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!