簡體   English   中英

在 PHP 中輸​​出帶有換行符的文本文件

[英]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","&lt;br&gt;",$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>&nbsp;<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM