使用 popen() 和 passthru() 使用 PHP 进行实时输出
PHP 的 shell_exec() 函数允许您执行命令并捕获其输出。但是,使用 shell_exec() 或其他内置函数(如 system()、exec() 或 passthru())无法在命令执行期间实时显示输出。
对于实时输出,请考虑使用 popen( ) 反而。它打开一个通往进程的管道,并允许您像文件一样读取或写入其输入/输出。
用于立即输出的 Passthru():
如果需要直接向用户显示输出而不等待命令完成,可以使用passthru():
echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo '';
Popen() 用于实时输出:
要在命令执行时实时显示输出,请使用 popen() 和while 循环:
while (@ ob_end_flush()); // end output buffers $proc = popen($cmd, 'r'); echo '<pre class="brush:php;toolbar:false">'; while (!feof($proc)) { echo fread($proc, 4096); @ flush(); } echo '';
此代码打开命令的管道,以块的形式读取其输出,并将其显示在
有用信息:
以上是如何实现PHP Shell命令的实时输出?的详细内容。更多信息请关注PHP中文网其他相关文章!