Есть большой текстовый файл. Нужно прочитать его при помощи php. Стандартно циклом
while (!feof($text)) {
$line = fgets($text);
}
Однако, в файле были нулевые ASCII символы, из-за которых fgets возвращает false и происходит выход из цикла, хотя до завершения файла ещё далеко.
Нулевые символы удаляю при помощи:
shell_exec("tr < file -d '\000' > file2");
Пробовал ещё выполнять различные манипуляции с iconv, применяя ASCII//IGNORE
Визуально, всё хорошо, никаких нулевых символов не видно. Однако fgets продолжает на том месте возвращать false.
Как исправить эту ошибку?