繁体   English   中英

PHP回调函数用于类似exec()的每个输出行的实时

[英]PHP callback function for similar exec() every output line real time

我正在寻找一个PHP函数或解决方法,这将允许您为执行输出的每一行创建一个回调函数。 我能找到的最好的是proc_open(),但它只允许我在调用fgets()时输出每个指定的字节,以获得输出。 如果我把fgets()中的字节太小,它会将一行分成多行; 太大会延迟回调。

在PHP中是否有一个函数允许我调用我的回调函数,类似于proc_open,每个输出行? Exec()函数是一个很好的例子,因为它可以将每一行放入一个数组中,但是它没有选择在进行每个索引时给出回调。

你可以通过回调从exec返回的每一行来创建自己的行。 见下文

function exec_callback($command, $callback){
    $array = array();
    exec($command, $array, $ret);
    if(!empty($array)){
        foreach ($array as $line){
            call_user_func($callback, $line);
        }
    }
}

// example to use
function print_lines($line){
    echo "> $line\n";
}

exec_callback("ls -l /", 'print_lines');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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