php passthru不返回任何输出

时间:2018-02-16 12:28:28

标签: php python output passthru

我试图从php调用python脚本。但是,我无法弄清楚如何将结果返回到我的PHP脚本以便在那里使用它。我的php脚本如下:

<?php
  $input = 'help';
  $output = passthru("/usr/bin/python3.5 /path/test.py '$input'");
  echo $output;
?>

虽然我的python脚本'test.py'是:

import sys
json2 = sys.argv[1]

1 个答案:

答案 0 :(得分:2)

那是因为你的python脚本什么也没有返回。刚做:

json2 = sys.argv[1]

仅将值指定给json2。我怀疑你正在尝试做类似的事情:

import sys
json2 = sys.argv[1]
print json2

这似乎工作正常:

~ # php -a             
Interactive shell

php > $input = 'help';
php > $output = passthru("/usr/bin/python test.py '$input'");
help

<强>更新

根据您的评论。您正在寻找exec()

~ # php -a     
Interactive shell

php > $input = 'help';
php > $output = exec("/usr/bin/python test.py '$input'");
php > echo $output;
help

请注意,您的Python脚本输出内容。只是分配一个变量是行不通的,因为PHP无法为你解释你的Python代码。它只能运行脚本并对脚本的输出执行某些操作。