我试图找到一种方法,我可以回显exec调用的输出,然后在进程运行时将其刷新到屏幕。我写了一个简单的PHP脚本,它接受文件上传,然后使用FFMPEG转换文件,如果它不是适当的文件类型。我在Windows机器上做这个。目前我的命令看起来像这样:PHP执行 - 在进程中逐行回显输出
$cmd = "ffmpeg.exe -i ..\..\uploads\\".$filename." ..\..\uploads\\".$filename.".m4v 2>&1";
exec($cmd, $output);
我需要的是这样的:
while($output) {
print_r($output);
ob_flush(); flush();
}
我读过有关使用ob_flush()
和flush()
清除输出缓冲区,但我只得到一次过程输出已完成。该命令完美工作,它只是在转换时不更新页面。我想有一些输出,所以这个人知道发生了什么。
我已经设置了超时
set_time_limit(10 * 60); //5 minute time out
,他很感激,如果有人可以把我在正确的方向。我查看了一些接近一个Stackoverflow的解决方案,但没有一个似乎奏效。