繁体   English   中英

显示从shell_exec获取的输出并实时显示,而不是等待5-7分钟后显示

[英]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分钟,然后才能看到大约一百行输出。 我正在尝试在输出执行时将其输出到浏览器中-我希望能够实时看到该输出(在浏览器上)。

我尝试使用popenproc_openflush()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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM