Python調(diào)用PHP的函數(shù)**
最近在做支付相關(guān)的產(chǎn)品粤策,當(dāng)然是去第三方的平臺,公司使用的是Python語言,支付公司只有PHP和Java的Demo亡脑,研究了半天,涉及到業(yè)務(wù)字段加密的部分邀跃,決定用Python去調(diào)用支付公司提供的PHP加密/解密函數(shù)霉咨。
沒有PHP開發(fā)經(jīng)驗,百度了一下:找到
** http://blog.csdn.net/houqd2012/article/details/11266319 **
還不錯拍屑,免去了翻墻Google途戒。
PHP參數(shù)傳入:
我們通過在URL后面追加參數(shù)的方式傳入?yún)?shù),如下:
php -f ./php_aes.php method args1 args2
PHP文件:php_aes.php
PHP函數(shù):method
傳入?yún)?shù):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()
其中要注意的是僵驰,不管是函數(shù)名喷斋,還是參數(shù),都是在文件URL后追加蒜茴,而且要用空格分開星爪。**
PHP文件中參數(shù)獲取:
不用多說粉私,直接在PHP文件內(nèi)獲取URL后面
$method = $argv[1];
$rsaKey = $argv[2];
$data = $argv[3];
現(xiàn)在我們有了方法/函數(shù)名顽腾,有了參數(shù),該怎么做呢诺核?
還用多說抄肖?當(dāng)然去調(diào)用方法,并且調(diào)用的同時窖杀,把獲取的參數(shù)傳進(jìn)去憎瘸。
if(isset($method) && $method != ""){
return $method($data, $key);
}else{
echo "No function to call.";
}
切記,調(diào)用的方法陈瘦,內(nèi)部處理完成之后幌甘,要想在Python中獲取返回值,要使用print_r echo print
輸出痊项。**
function aes_en($encrypted,$key) {
print_r ("success");
}
這樣就實現(xiàn)了Python調(diào)用PHP的函數(shù)锅风。