在PHP中输出带换行符的文本文件

时间:2010-01-13 19:50:48

标签: php html text-processing

我正在尝试打开文本文件并使用下面的代码输出其内容。文本文件包含换行符,但是当我回显文件时它未格式化。我该如何解决这个问题?

感谢。

<html>

<head>

</head>

<body>

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

        $pageText = fread($fh, 25000);

        echo $pageText;


</body>

</html>

9 个答案:

答案 0 :(得分:30)

要将纯文本换行符转换为html换行符,请尝试以下操作:

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

    $pageText = fread($fh, 25000);

    echo nl2br($pageText);

注意包装文本的nl2br函数。

答案 1 :(得分:22)

一行代码:

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

答案 2 :(得分:5)

如果您只想在html代码中显示文件的输出格式与文本文件中的格式相同,则可以使用一对预标记包装echo语句:

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

其他一些答案看起来很有希望取决于你正在尝试做什么。

答案 3 :(得分:2)

在回声之前,一定要包括

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

答案 4 :(得分:2)

对于像这样的简单读物,我会做这样的事情:

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

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

这将处理回车并输出文本。除非我写入文件,否则我不使用fopen和相关函数。

希望这有帮助。

答案 5 :(得分:0)

您输出的是HTML还是纯文本?如果HTML尝试在每行末尾添加<br>。 e.g。

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

答案 6 :(得分:0)

尝试使用MacOSX 10.6.6和Camino在Apache2和PHP 5.3.3上读取.txt文件时使用换行符, echo nl2br($ text); 无法正常工作直到我首先打印文件大小。 顺便说一句,如果.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 );
?>

答案 7 :(得分:0)

假设您有一个由Web服务器托管的index.php文件。您想要在其中插入一些多行文本文件内容。这就是你如何做到的:

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

这个<?= ... ?>部分只是一个简写,它指示Web服务器,它需要被视为PHP echo参数。

答案 8 :(得分:-1)

您需要将PHP代码包装到<?php <YOU CODE HERE >?>中,并将其保存为.php.php5(取决于您的apache设置)。