如何在浏览器上打印shell_exec()错误消息?

时间:2019-07-12 02:31:43

标签: php debian

我需要对代码示例进行故障排除,但似乎找不到任何错误。

$date = $_POST['date'];
$strcommand = "python3 python.py ".$date.""; //date argument is passed to python 
echo $strcommand;
$command = shell_exec($strcommand);
echo $command; //proceeds a lot of calculations and then sends an automatic mail with python

使用此代码示例时, Python会运行,但邮件不会发送。我可以说它运行是因为python返回了print()语句,这些语句显示在浏览器中。 但是,当发生错误时,我不会从系统收到任何错误消息!

这是我尝试识别错误的方法:我从浏览器中复制了$ str命令,并将其输入命令行(仅用相应的字符串替换$date,完全相同的目录位于php文件所在的位置,并猜测是什么,python按预期运行,并且邮件已发送。

如何识别此错误?

1 个答案:

答案 0 :(得分:1)

如果将错误消息打印为标准错误而不是标准输出,则需要重定向它,以便可以在PHP中捕获它。

$date = escapeshellarg($_POST['date']);
$strcommand = "python3 python.py $date 2>&1";