За последние 24 часа нас посетили 17329 программистов и 1264 робота. Сейчас ищут 1497 программистов ...

Неправильная работа функции feof в PHP 5.6

Тема в разделе "Прочие вопросы по PHP", создана пользователем sinbad13, 29 ноя 2015.

  1. sinbad13

    sinbad13 Активный пользователь

    С нами с:
    26 ноя 2015
    Сообщения:
    3
    Симпатии:
    0
    Привет, камрады!

    Возникла проблема откуда не ждали, может кто сталкивался и находил решение.
    На локалке стоит PHP 5.5.9 и был написан следующий, казалось бы привычный всем, код:

    Код (PHP):
    1.  
    2. $fh = fopen($tmp_folder . $chunk, "rb");
    3.  
    4. while ( ! feof($fh) ) {
    5.   print(fread($fh, $chunk_size));
    6. }
    7.  
    8. fclose($fh);
    На боевом серваке оказался PHP 5.6.7 и в результате данный код отказывается правильно работать. Нашел в инете следующий багфикс https://bugs.php.net/bug.php?id=68948 и вроде как все должно работать, и тесты типа
    Код (PHP):
    1. $stream = fopen("php://temp", "r+");
    2. fwrite($stream, "0123456789");
    3. rewind($stream);
    4. var_dump(fread($stream, 10), ftell($stream), feof($stream));
    действительно теперь успешно проходят, но так или иначе сама функция теперь работает иначе, нежели в предыдущих версия PHP.

    На крайний случай, конечно, готов на боевом сделать даунгрейд PHP, но хотелось бы найти решение в коде.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    В новой версии PHP 5.6.16 починили?
     
  3. sinbad13

    sinbad13 Активный пользователь

    С нами с:
    26 ноя 2015
    Сообщения:
    3
    Симпатии:
    0
    Не знаю, к сожалению, проверить негде, пока имеется только то, что тянется с репы debian 8
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот можно быстро код прогнать по разным версиям
    https://3v4l.org/
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    слишком подробное описание, прям не знаю что сказать.