Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Скажите пожалуйста как вывести содержимое txt файла на странице средствами PHP? Гугл как обычно дурак и не находит

) Ученик (131), на голосовании 6 месяцев назад
Голосование за лучший ответ
Павел Знаток (331) 7 месяцев назад
Существует несколько способов прочитать файл в PHP, но я считаю, что наиболее надежным подходом является использование функции fopen() для работы с файловым потоком.
Вот пример кода:
   


Page Title


// Указываем путь к файлу
$filePath = 'C:\your_path\file.txt';
// Открываем файл для чтения
$file = fopen($filePath, 'r');


// Построчно считываем содержимое файла и выводим его на экран

while ($line = fgets($file)) {
echo $line . '
';
}

// Закрываем файл после окончания работы с ним
fclose($file);
?>


© Дима™Мыслитель (5877) 7 месяцев назад
Или просто
echo nl2br(file_get_contents('C:\your_path\file.txt'));
Павел Знаток (331) © Дима™, Это может быть и проще, но не лучше с точки зрения эффективности использования оперативной памяти, обработки ошибок и безопасности.
ПавелЗнаток (331) 7 месяцев назад
Представим, что у нас есть файл размером 2 Гб, и нам нужно выводить его постранично. При использовании file_get_contents() для того чтобы прочитать файл нам нужно будет сначала загрузить весь файл в память целиком и упремся в memory_limit и получим ошибку. В отличие от функции file_get_contents(), функция fopen() читает файл частями и мы можем выводить только необходимые нам данные, не загружая весь файл целиком.
© Дима™ Мыслитель (5877) Павел, Это актуально, только с командной строки и то с локальными данными. Или при отдаче больших данных клиенту частями Страница у пользователя отобразиться только, примерно через 2 дня при 2Гб размера загружаемых в неё данных! Если раньше соединение не оборвется Тогда актуальней было бы сократить данные while (!feof($file)) { echo fgets($file, 4096) . '<br>'; } echo nl2br(file_get_contents('C:\your_path\file.txt', length: 4096)); А в идеале не то и не другое, а приготовить отдельный патерн на объекте SplFileObject для больших данных
Похожие вопросы