PHP教程

PHP脚本调用命令获取实时输出

本文主要是介绍PHP脚本调用命令获取实时输出,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在写脚本的时候, 经常会有需要调用其他命令. 而在调用一些耗时命令的时候, 我们是需要能够实时掌握脚本进度的.

一般来说, 脚本的进度通常是通过脚本的输出来获得.

如果是一个bash脚本, 那么直接调用命令 A就可以将执行权交出去, 然后命令 A的输出就可以实时显示出来了.

如果是perl脚本, 通过``符号也可以调用命令 A, 但是结果会在命令 A整个结束的时候才能拿到, 此时通过system 命令 A就可以将执行权交给命令 A, 同样, 命令 A的输出也能够实时显示出来.

如果是PHP脚本, 通过``符号调用, 和perl脚本是一样的, 只能在命令A结束是才能拿到返回. 那么PHP脚本如何实时获取命令 A的输出呢? 可以通过监听进程输出的形式:

function real_cmd($command){
    // 执行命令并打开命令的输出指针
    $handle = popen($command, 'r');
    while (!feof($handle)) {
        // 循环获取命令输出
        $data = fgets($handle);
        // 刷新输出缓冲区
        ob_flush();
        flush();
        echo $data;
    }
    // 命令执行结束, 关闭指针
    pclose($handle);
}
这篇关于PHP脚本调用命令获取实时输出的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!