php - 如何忽略 shell_exec 中的错误?

标签 php error-handling shell-exec

我在 PHP 中得到 shell 命令的输出为

$str = shell_exec("command");

并在终端中运行 PHP 脚本。当 shell 命令 返回错误时,它会打印在终端上。我如何告诉 shell_exec 只返回命令输出而不返回任何错误输出?

最佳答案

您只需将 stderr 重定向到 /dev/null 即可丢弃错误输出

$str = shell_exec("command 2>/dev/null");

非错误输出 - stdout - 将像以前一样存储到 $str 中。


请注意,您不需要使用 @ 运算符抑制 shell_exec 上的错误或将其包装到 try- catch block ,因为 shell_exec 不会失败(您没有 PHP 运行时错误)。

要求执行的命令可能会产生错误,上述方法将抑制输出中的错误。

还有 some-command >/dev/null 2>&1 其他建议不是你想要的(如果我理解正确你的问题)因为那会丢弃错误和非错误输出。


最后说明:您可以决定捕获/丢弃stdout 和/或stderr

当然,您必须依赖这样一个事实,即您正在运行的命令将常规输出发送到 stdout 并将错误发送到 stderr。如果命令不符合标准(例如,将所有内容发送到 stdout),那你就不走运了。

关于php - 如何忽略 shell_exec 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201896/

相关文章:

php - 重定向不适用于 Cloud SQL

PHP多维数组处理

javascript - Window.onerror 不返回有关错误的信息

php - 我可以在extend Exception类中放什么?

PHP mysqli 用逗号一起插入而不是一一插入

php - 切换到学说 : how to realize such query?

haskell - 调用函数的haskell案例

php - 如何为 php exec 或 shell_exec 设置 $PATH

C# 相当于 shell_exec

php - 无法使用 php shell_exec 转换 pdf 文件