php passthru不返回任何输出

php passthru不返回任何输出,php,python,output,passthru,Php,Python,Output,Passthru,我正在尝试从php调用python脚本。但是,我不知道如何将结果返回到我的php脚本,以便在那里使用它。我的php脚本如下所示: <?php $input = 'help'; $output = passthru("/usr/bin/python3.5 /path/test.py '$input'"); echo $output; ?> 这是因为python脚本不返回任何内容。只是做: json2 = sys.argv[1] 仅将值分配给json2。我怀疑你想做的是:

我正在尝试从php调用python脚本。但是,我不知道如何将结果返回到我的php脚本,以便在那里使用它。我的php脚本如下所示:

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

这是因为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代码。它只能运行脚本并对脚本的输出进行处理。

谢谢您的回答,但我正在尝试将字符串返回到php并在那里打印。不在我的python脚本中。@然后改用
exec
。但是,如果PHP想要捕获Python脚本,它必须输出所需的返回值。PHP不能为您“解释”Python。你需要输出一些东西,我明白了。print(json2)实际上并没有打印到屏幕上,echo$output会打印到屏幕上。这是一个很难学到的教训。非常感谢@Oldskool
~ # php -a     
Interactive shell

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