如何从PHP调用Python脚本?
我有一些用PHP写的代码,但我也写了一个用Python写的脚本。请问我可以从PHP代码里调用这个Python脚本吗?
如果可以的话,我该怎么把参数从PHP传给Python脚本呢?
我试着找答案,但没有成功。
有人能给我一点提示吗?
4 个回答
1
你可以试试这个:
Python脚本:
test.py: print "hello"
然后是PHP脚本:
index.php: $i =`python test.py`; echo $i;
3
我成功地为PHP写了一个简单的函数PY([parametress], code)。这样你几乎可以在PHP中使用Python代码。你还可以传递一些简单的输入变量给Python程序。不过,你不能把数据返回过来,但我觉得这个问题可以很容易解决 :) 这个方法不适合在网络托管上使用(可能不安全,因为涉及系统调用),我创建这个函数是为了PHP-CLI使用的。
<?php
function PY()
{
$p=func_get_args();
$code=array_pop($p);
if (count($p) % 2==1) return false;
$precode='';
for ($i=0;$i<count($p);$i+=2) $precode.=$p[$i]." = json.loads('".json_encode($p[$i+1])."')\n";
$pyt=tempnam('/tmp','pyt');
file_put_contents($pyt,"import json\n".$precode.$code);
system("python {$pyt}");
unlink($pyt);
}
//begin
echo "This is PHP code\n";
$r=array('hovinko','ruka',6);
$s=6;
PY('r',$r,'s',$s,<<<ENDPYTHON
print('This is python 3.4 code. Looks like included in PHP :)');
s=s+42
print(r,' : ',s)
ENDPYTHON
);
echo "This is PHP code again\n";
?>
26
你可以使用系统函数:http://php.net/manual/en/function.system.php
像这样使用:
$mystring = system('python myscript.py myargs', $retval);