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

How to print shell_exec() error messages on the browser?

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

$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 将 运行 但不会发送邮件 。我可以告诉它 运行s 因为 python returns print() 语句显示在浏览器中。 但是当发生错误时,我没有收到系统的任何错误信息!

以下是我尝试识别错误的方法:我从浏览器复制 $str 命令并在命令行中输入它 (仅将 $date 替换为相应的字符串),在 php 文件所在的完全相同的目录中,猜猜是什么,python 运行 正如预期的那样,邮件已发送。

如何识别此错误?

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

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