我有一些用PHP编写的代码,但我也开发了一个用Python编写的脚本。是否可以从PHP代码中调用此Python脚本?
如果是,我如何从PHP传递参数到Python脚本?
我试图找到答案但没有任何成功。
有人能给我一些线索吗?
答案 0 :(得分:24)
您使用系统功能:http://php.net/manual/en/function.system.php
这样的事情:
$mystring = system('python myscript.py myargs', $retval);
答案 1 :(得分:3)
我设法为PHP制作了简单的函数PY([参数],代码)。您几乎可以在PHP中包含python代码。 您可以将一些简单的输入变量传递给python进程。你无法获得任何数据,但我相信可以很容易地修复:)不适合在webhosting使用(可能不安全,系统调用),我为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";
?>
答案 2 :(得分:1)
你可以试试这个:
python脚本:
test.py: print "hello"
然后是php脚本
index.php: $i =`python test.py`; echo $i;
答案 3 :(得分:0)
是的,您只需使用exec()在php中调用python程序即可。我已经包含在这里的简单示例程序。
$pyscript = 'G:\wamp\www\ll\test.py';
$python = 'C:\\Python27\\python.exe';
$cmd='$pyscript $python';
exec("$cmd", $output);
您应该指定您的python.exe路径和您的python文件路径。它必须在Windows环境中使用。