Как проверить, есть ли в потоке данные?Php

Кемеровские программисты php общаются здесь
Anonymous
Как проверить, есть ли в потоке данные?

Сообщение Anonymous »

Вот что я пытаюсь сделать:

Код: Выделить всё

$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().

Подробнее здесь: https://stackoverflow.com/questions/139 ... s-any-data

Вернуться в «Php»