Чтобы полностью перевернуть файл:
$fl = fopen("\some_file.txt", "r");
for($x_pos = 0, $output = ''; fseek($fl, $x_pos, SEEK_END) !== -1; $x_pos--) {
$output .= fgetc($fl);
}
fclose($fl);
print_r($output);
Конечно, вы хотели построчное обращение ...
$fl = fopen("\some_file.txt", "r");
for($x_pos = 0, $ln = 0, $output = array(); fseek($fl, $x_pos, SEEK_END) !== -1; $x_pos--) {
$char = fgetc($fl);
if ($char === "\n") {
// analyse completed line $output[$ln] if need be
$ln++;
continue;
}
$output[$ln] = $char . ((array_key_exists($ln, $output)) ? $output[$ln] : '');
}
fclose($fl);
print_r($output);
Действительно, у Джонатана Куна лучший ответИМХО выше.Единственный случай, когда вы не используете его ответ, о котором я знаю, это если file
или подобные функции отключены через php.ini, но администратор забыл о fseek, или при открытии большого файла просто получите последние несколько строкволшебным образом сохранит память таким образом.
Примечание: обработка ошибок не включена.И PHP_EOL не сотрудничал, поэтому я использовал "\ n" для обозначения конца строки.Таким образом, выше может работать не во всех случаях.