php 直通 returns 无输出
php passthru returns no output
我正在尝试从 php 调用 python 脚本。但是,我不知道如何 return 我的 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]
那是因为您的 python 脚本 returns 什么都没有。正在做:
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 脚本。但是,我不知道如何 return 我的 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]
那是因为您的 python 脚本 returns 什么都没有。正在做:
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 代码。它只能 运行 脚本并对脚本的输出做一些事情。