Вывод текстового файла с разрывами строк в 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","<br>",$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> <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
.