[英]how to display output in real time to an array in exec(), system() php
[英]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.