Вывод текстового файла с разрывами строк в PHP

Я пытаюсь открыть текстовый файл и вывести его содержимое с помощью кода ниже. Текстовый файл содержит разрывы строк, но когда я эхо файл, он неформатирован. Как это исправить?

Спасибо.

<html>

<head>

</head>

<body>

        $fh = fopen("filename.txt", 'r');

        $pageText = fread($fh, 25000);

        echo $pageText;


</body>

</html>

Ответ 1

Чтобы преобразовать разрывы строки в текстовые разрывы html, попробуйте следующее:

    $fh = fopen("filename.txt", 'r');

    $pageText = fread($fh, 25000);

    echo nl2br($pageText);

Обратите внимание на функцию nl2br, которая обертывает текст.

Ответ 2

Одна строка кода:

 echo nl2br( file_get_contents('file.txt') );

Ответ 3

Если вы просто хотите показать вывод файла в HTML-коде, отформатированном таким же образом, как и в текстовом файле, вы можете обернуть свой echo-оператор парой предварительных тегов:

echo "<pre>";
echo $pageText;
echo "</pre>";

Некоторые из других ответов выглядят многообещающими в зависимости от того, что вы пытаетесь сделать.

Ответ 4

Перед эхом обязательно включите

header('Content-Type: text/plain');

Ответ 5

Для простого чтения, как это, я бы сделал что-то вроде этого:

$fileContent = file_get_contents("filename.txt");

echo str_replace("\n","&lt;br&gt;",$fileContent);

Это обеспечит возврат каретки и вывод текста. Если я не пишу в файл, я не использую функции fopen и связанные функции.

Надеюсь, что это поможет.

Ответ 6

Вы выводите HTML или обычный текст? Если HTML попытается добавить <br> в конце каждой строки. например.

while (!feof($handle)) {
  $buffer = fgets($handle, 4096); // Read a line.
  echo "$buffer<br/>";
} 

Ответ 7

Вам нужно обернуть свой PHP-код в <?php <YOU CODE HERE >?> и сохранить его как .php или .php5 (зависит от вашей настройки apache).

Ответ 8

Попытка получить разрывы строк для работы с чтением .txt файла на Apache2 и PHP 5.3.3 с MacOSX 10.6.6 и Camino, echo nl2br ($ text); не работает правильно пока я не напечатал сначала размер файла. BTW, похоже, не имеет значения, имеет ли файл .txt линией Linux/MacOSX LF или Windows CRLF, или текстовое кодирование UTF-8 или Windows Latin1, Camino получает его в порядке.

<?php
$filename     = "/Users/Shared/Copies/refrain.txt";
$file_ptr     = fopen ( $filename, "r" );
$file_size    = filesize ( $filename );
$text         = fread ( $file_ptr, $file_size );
fclose ( $file_ptr );
echo ( "File size : $file_size bytes<br>&nbsp;<br>" );
echo nl2br ( $text );
?>

Ответ 9

Скажем, у вас есть файл index.php, размещенный на веб-сервере. Вы хотите вставить в него несколько многострочных текстовых файлов. Как вы это делаете:

<body>
        <div>Some multi-line message below:</div> 
        <div><?= nl2br(file_get_contents('message.txt.asc')); ?></div>
</body>

Эта часть <?= ... ?> является просто сокращением, которое указывает веб-серверу, что его нужно рассматривать как аргумент PHP echo.