ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-10-13 23:34:23  阅读:28  来源: 互联网

标签:脚本 输出 调用 handle 实时 命令 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);
}

标签:脚本,输出,调用,handle,实时,命令,PHP
来源: https://www.cnblogs.com/hujingnb/p/15404749.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有