gpt4 book ai didi

PHP - 如何让 Shell 错误回显到屏幕上

转载 作者:IT王子 更新时间:2023-10-28 23:49:41 25 4
gpt4 key购买 nike

我是第一次使用 shell_exec()。我正在尝试使用 ffmpeg shell 脚本在我的服务器上转换一些视频文件。

当我在浏览器中执行以下代码时,它返回 NULL:

var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4"));

但是,当我在终端中运行等效代码时:

> ffmpeg -i/var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4

我得到了一大堆有用的信息,但以错误结束“至少一个输出文件必须指定”

为什么此信息没有传回我的 PHP 脚本以便我可以回显它?

最佳答案

错误数据是从目标程序的STDERR 流中输出的。您可以通过将 2>&1 附加到命令中,通过从 shell_exec() 正常返回的字符串访问错误数据,这将重定向 STDERRSTDOUT,您当前看到的流:

var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4 2>&1"));

您可能还想看看 proc_open()这将允许您作为三个单独的流访问 STDINSTDOUTSTDERR,从而可以对目标程序进行更精细的控制以及您如何处理输入和输出的确切方式,包括根据需要将所有这些直接重定向到日志文件。但请注意,这是一个复杂得多的机制,存在许多陷阱和绊倒危险。

有关标准流的更多信息,请访问 here .

关于PHP - 如何让 Shell 错误回显到屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15086572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com