php passthru不返回任何输出
我正在尝试从php调用python脚本。但是,我不知道如何将结果返回到我的php脚本,以便在那里使用它。我的php脚本如下所示: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
$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