web-dev-qa-db-ja.com

PHP)で改行を含む出力テキストファイル

テキストファイルを開いて、その内容を以下のコードで出力しようとしています。テキストファイルには改行が含まれていますが、ファイルをエコーするとフォーマットされていません。これを修正するにはどうすればよいですか?

ありがとう。

<html>

<head>

</head>

<body>

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

        $pageText = fread($fh, 25000);

        echo $pageText;


</body>

</html>
12
usertest

プレーンテキストの改行をhtmlの改行に変換するには、次のことを試してください。

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

    $pageText = fread($fh, 25000);

    echo nl2br($pageText);

テキストをラップするnl2br関数に注意してください。

31
MattBelanger

1行のコード:

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

テキストファイルと同じようにフォーマットされたhtmlコード内でファイルの出力を表示したいだけの場合は、echoステートメントを1組のpreタグでラップできます。

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

他の答えのいくつかは、あなたがやろうとしていることに応じて有望に見えます。

7
Jeremy Heslop

このような単純な読み取りの場合、次のようにします。

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

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

これにより、キャリッジリターンが処理され、テキストが出力されます。ファイルに書き込んでいる場合を除いて、fopenおよび関連する関数は使用しません。

お役に立てれば。

2
bng44270

エコーの前に、必ず含めてください

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

Webサーバーによってホストされているindex.phpファイルがあるとします。複数行のテキストファイルの内容を挿入したいとします。それはあなたがそれをする方法です:

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

この<?= ... ?>の部分は、Webサーバーに、PHP echo引数として扱う必要があることを指示する省略形です。

0

Apache2およびPHP 5.3.3、MacOSX 10.6.6およびCaminoを使用)で.txtファイルを読み取るために改行を取得しようとすると、echo nl2br($ text); =最初にファイルサイズを印刷するまで正しく機能しませんでした。ところで、.txtファイルにLinux/MacOSXが含まれているかどうかは問題ではないようですLFまたはWindowsCRLFの改行またはテキストエンコーディングはUTF-8またはWindowsLatin1で、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 );
?>
0
chantal

HTMLまたはプレーンテキストに出力していますか? HTMLの場合は、各行の最後に<br>を追加してみてください。例えば.

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