[英]Output text file with line breaks in PHP
我正在尝试打开一个文本文件并使用以下代码输出其内容。 文本文件包含换行符,但是当我回显文件时,它是未格式化的。 我该如何解决这个问题?
谢谢。
<html>
<head>
</head>
<body>
$fh = fopen("filename.txt", 'r');
$pageText = fread($fh, 25000);
echo $pageText;
</body>
</html>
要将纯文本换行符转换为 html 换行符,请尝试以下操作:
$fh = fopen("filename.txt", 'r');
$pageText = fread($fh, 25000);
echo nl2br($pageText);
请注意包装文本的 nl2br 函数。
一行代码:
echo nl2br( file_get_contents('file.txt') );
如果您只想在 HTML 代码中显示文件的输出,其格式与文本文件中的格式相同,您可以使用一对 pre 标记包装您的 echo 语句:
echo "<pre>" . $pageText . "</pre>;
根据您尝试做的事情,其他一些答案看起来很有希望。
在回声之前,一定要包括
header('Content-Type: text/plain');
对于像这样的简单读取,我会做这样的事情:
$fileContent = file_get_contents("filename.txt");
echo str_replace("\n","<br>",$fileContent);
这将处理回车并输出文本。 除非我正在写入文件,否则我不使用 fopen 和相关函数。
希望这会有所帮助。
您是输出为 HTML 还是纯文本? 如果 HTML 尝试在每行的末尾添加一个<br>
。 例如
while (!feof($handle)) {
$buffer = fgets($handle, 4096); // Read a line.
echo "$buffer<br/>";
}
试图让换行符在 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> <br>" );
echo nl2br ( $text );
?>
您需要将您的 PHP 代码包装成<?php <YOU CODE HERE >?>
,并将其保存为.php
或.php5
(取决于您的 apache 设置)。
假设您有一个由 Web 服务器托管的index.php
文件。 您想在其中插入一些多行文本文件内容。 这就是你的做法:
<body>
<div>Some multi-line message below:</div>
<div><?= nl2br(file_get_contents('message.txt.asc')); ?></div>
</body>
这个<?= ... ?>
部分只是一个速记,它指示 Web 服务器,它需要被视为 PHP echo
参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.