テキストファイルを開いて、その内容を以下のコードで出力しようとしています。テキストファイルには改行が含まれていますが、ファイルをエコーするとフォーマットされていません。これを修正するにはどうすればよいですか?
ありがとう。
<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関数に注意してください。
1行のコード:
echo nl2br( file_get_contents('file.txt') );
テキストファイルと同じようにフォーマットされたhtmlコード内でファイルの出力を表示したいだけの場合は、echoステートメントを1組のpreタグでラップできます。
echo "<pre>";
echo $pageText;
echo "</pre>";
他の答えのいくつかは、あなたがやろうとしていることに応じて有望に見えます。
このような単純な読み取りの場合、次のようにします。
$fileContent = file_get_contents("filename.txt");
echo str_replace("\n","<br>",$fileContent);
これにより、キャリッジリターンが処理され、テキストが出力されます。ファイルに書き込んでいる場合を除いて、fopenおよび関連する関数は使用しません。
お役に立てれば。
エコーの前に、必ず含めてください
header('Content-Type: text/plain');
Webサーバーによってホストされているindex.php
ファイルがあるとします。複数行のテキストファイルの内容を挿入したいとします。それはあなたがそれをする方法です:
<body>
<div>Some multi-line message below:</div>
<div><?= nl2br(file_get_contents('message.txt.asc')); ?></div>
</body>
この<?= ... ?>
の部分は、Webサーバーに、PHP echo
引数として扱う必要があることを指示する省略形です。
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> <br>" );
echo nl2br ( $text );
?>
HTMLまたはプレーンテキストに出力していますか? HTMLの場合は、各行の最後に<br>
を追加してみてください。例えば.
while (!feof($handle)) {
$buffer = fgets($handle, 4096); // Read a line.
echo "$buffer<br/>";
}