Python调用PHP的函数**
最近在做支付相关的产品,当然是去第三方的平台,公司使用的是Python语言,支付公司只有PHP和Java的Demo,研究了半天,涉及到业务字段加密的部分,决定用Python去调用支付公司提供的PHP加密/解密函数。
没有PHP开发经验,百度了一下:找到
** http://blog.csdn.net/houqd2012/article/details/11266319 **
还不错,免去了翻墙Google。
PHP参数传入:
我们通过在URL后面追加参数的方式传入参数,如下:
php -f ./php_aes.php method args1 args2
PHP文件:php_aes.php
PHP函数:method
传入参数:args1 args2
Python就是:
method = 'aes_en'
rsaKey = 'MUDBFOSJIF=='
data = 'Leou'
proc = subprocess.Popen(['php -f ./ucf/php_aes.php ' + method + ' ' + rsaKey + ' ' + data], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
response = proc.stdout.read()
其中要注意的是,不管是函数名,还是参数,都是在文件URL后追加,而且要用空格分开。**
PHP文件中参数获取:
不用多说,直接在PHP文件内获取URL后面
$method = $argv[1];
$rsaKey = $argv[2];
$data = $argv[3];
现在我们有了方法/函数名,有了参数,该怎么做呢?
还用多说?当然去调用方法,并且调用的同时,把获取的参数传进去。
if(isset($method) && $method != ""){
return $method($data, $key);
}else{
echo "No function to call.";
}
切记,调用的方法,内部处理完成之后,要想在Python中获取返回值,要使用print_r echo print
输出。**
function aes_en($encrypted,$key) {
print_r ("success");
}
这样就实现了Python调用PHP的函数。