簡體   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