我使用PHP函数shell_exec()
来执行Shell脚本。
当我使用这个(正确的)语法时,它通常显示输出
echo shell_exec("ls -l");
但是,由于某种原因,如果用户输入这样的无效命令
echo shell_exec("lsl -l");
默认情况下,它应该在终端上给出错误。但是,它没有显示任何东西。是否有任何方法来捕捉和显示错误;通过PHP?
答案 0 :(得分:3)
这是因为错误的输出转到STDERR
,而shell_exec
只读取STDOUT
。最简单的解决方案可能是将STDERR
传递给STDOUT
:
<?php
echo shell_exec('lsl -l 2>&1');
如果您只想知道命令是否成功,我会使用exec而不是shell_exec,因为您可以获得返回值。
答案 1 :(得分:1)