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

Php 如何在浏览器上打印shell_exec()错误消息?,php,debian,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 a

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

$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()
语句,这些语句显示在浏览器中但是,当发生错误时,我不会从系统收到任何错误消息

下面是我如何试图识别错误的:我从浏览器复制了$strcommand,并将其输入命令行(仅用相应的字符串替换
$date
),输入到php文件所在的同一目录中,猜猜看,python按预期运行,邮件已发送


如何识别此错误?

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

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

第2行的
不匹配此内容已在帖子中编辑。真实的东西没有这个语法错误。谢谢那么现在您正在连接一个空字符串?另外,您有一个名为
python.py
的文件,您没有告诉我们其中有什么内容。空字符串可以正常工作,不用担心。考虑到从命令行使用python字符串时可以正确运行,因此解决这个问题并不是很有趣。基本上,它使用python科学库分析一组数据。数据集取决于给定的日期,并从数据库中检索。然后它会自动发送一封邮件作为摘要。我见过很多人将空字符串串联在一起,但我一直无法让他们解释他们为什么这样做。