[英]Show output taken from shell_exec and display it in real time instead of after waiting 5-7min
现在,我有如下代码。
$output = shell_exec( !-- unix commands are here --! );
echo $output;
我有一个网站,单击特定按钮后,将输出外壳脚本并将其显示在浏览器中。 这很正常。 唯一的问题是,直到输出完成,我才能看到输出发生了什么。 我必须等待大约5-7分钟,然后才能看到大约一百行输出。 我正在尝试在输出执行时将其输出到浏览器中-我希望能够实时看到该输出(在浏览器上)。
我尝试使用popen
, proc_open
, flush()
, ob_start
等。似乎什么都没有用。 我只是尝试打开一个文本文件,将输出内容写入文本文件,然后在循环中增量读取文本文件。 我是php的初学者,所以可能没有正确使用上述任何方法。
最简单的方法是什么?
因为PHP在阻塞模式下运行exec,system,pass_thru等,所以您的可能性非常有限。 PHP将要求代码在继续执行整个脚本之前完成执行,除非您执行类似以下操作的命令:
"> /dev/null 2>/dev/null &"
当然,这将停止命令的输出,但是..可能类似于:
exec('command > /cmd_file 2>/cmd_file &');
$file = fopen('/cmd_file', 'r');
while (!feof($file)) {
echo fgets($file);
sleep(1);
}
fclose($file);
值得一试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.