Php执行函数
我无法理解为什么php中的返回值不起作用。有人能帮我吗Php执行函数,php,python,exec,return-value,Php,Python,Exec,Return Value,我无法理解为什么php中的返回值不起作用。有人能帮我吗 <?php exec("xyz.py",$output,$return); foreach($output as $item){ echo "$item"; } echo $return; ?> 无论xyz.py返回什么值,输出总是Hello0 提前感谢。根据PHP,exec的第三个参数($return,在您的示例中)的工作方式如下: 如果return_var参数与output参数一起出现,则已执行命令的返回状态将写入该变量
<?php
exec("xyz.py",$output,$return);
foreach($output as $item){
echo "$item";
}
echo $return;
?>
无论xyz.py返回什么值,输出总是Hello0
提前感谢。根据PHP,exec的第三个参数($return,在您的示例中)的工作方式如下:
如果return_var参数与output参数一起出现,则已执行命令的返回状态将写入该变量
由于python程序运行良好,因此返回状态应为0(无错误)
这可能是您想要的:
import sys
def func():
print ('Hello')
return 21
sys.exit(func())
Return参数表示exec()函数的状态,而不是程序返回的内容
-1=错误
0=success将其附加到执行字符串中,这允许您捕获任何错误输出:
2>&1 &
根据你的例子:
exec('xyz.py 2>&1 &', $output);
echo $output;
所以,如果我想返回python脚本返回输出的值,我可以使用exec函数吗?或者还有其他可用的函数吗?以上是您想要的吗?没有,现在输出是HelloHello,我想要输出Hello21修改python脚本并使用原始PHP脚本如何?有没有可以输出返回值的函数?没有,您只需在末尾打印返回值,然后使用passthru()获取最后一行。您可以在引号中附加返回值并打印它。因此搜索和获取它会更容易。在python脚本中尝试sys.exit(21)
。
exec('xyz.py 2>&1 &', $output);
echo $output;