これは私がやろうとしていることです:
$output = '';
$stream = popen("some-long-running-command 2>&1", 'r');
while (!feof($stream)) {
$meta = stream_get_meta_data($stream);
if ($meta['unread_bytes'] > 0) {
$line = fgets($stream);
$output .= $line;
}
echo ".";
}
$code = pclose($stream);
の呼び出しでスタックするため、このコードは正しくないようstream_get_meta_data()
です。ストリームに読み取るデータがあるかどうかを確認する正しい方法は何ですか?ここでの重要な点は、でのロックを回避することfgets()
です。