Ошибка в документации PHP или ?

Royal Flash

-=MaestrO=-
В документации к функции feof() есть заметка, как предотвратить зацикливание функции по таймауту:

PHP:
<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

/* Assuming $fp is previously opened by fsockopen() */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 /* Handle */
}
?>
Но у меня этот код не работает! Т.е. если сервер не вернул Connection: close или проще $sp = ''; скрипт зацикливается все равно. Я, правда, не совсем разобрался со ссылками &, но немного покопавшись нашел решение:

PHP:
$timeout = 5;
$start = microtime(true);
while(!feof($fp) && (microtime(true) - $start) < $timeout)
  {
  $answer .= fgets($fp, 4096);
  }
Установлен PHP 5.2 - возможно, в новых версиях, пример из оф. документации работает?
 
Сверху