2012-02-19 11 views
3

私はraw/plain-textファイルの内容を取得するPHPスクリプトを持っています。このrawテキストをHTMLで出力したいのですが、HTMLで出力されたときに改行はもう存在しません。これを可能にするPHP関数やその他の回避策がありますか?例えばプレーンテキストを改行してHTMLに変換する方法はありますか?

、生のテキストファイルは、このテキストを持っていた場合:

ハロー
私の名前は

HTMLで出力する場合、それは言うだろうです:

をこんにちは私の名前は

です

これらの改行をHTMLで保持する方法はありますか?ありがとうございました。

(それが助け場合は、私のスクリプトは生のテキストファイルの内容を取得し、変数の内側にそれを置く、と私はちょうど変数をエコーし​​ます。)

答えて

3

あなたは(改行を変換する、nl2brをチェックアウトする必要がありますあなたが気づいたように、HTML文書には表示されません)

+0

うわー - それは簡単ですか!どのように私はこの機能を早く見つけることができませんか?ありがとう、それは素晴らしいです。 :) – Chrispy

+0

非常に優れたWYSIWYGのような:http://stackoverflow.com/a/7409591/2266583改行として改行を1行、新しい段落として2重改行を扱います – zanderwar

0

HTMLコードでは、あなたは使用することができます。 <br/>それが役立ちます。この機能http://php.net/manual/en/function.nl2br.php を読む;)

+0

同時に3つの回答がありました。すべてあなたがあなたの答えがより良いと思うので、同じ機能に向けられた答えが2つありました:) Thanks Sheriff。 – czupe

+0

問題ありませんメイト、私はあなたの似たような回答を探して、正しい方向がほぼ良かったり、より多くの行や例を書くのより良い方法があることを指摘しました。 これは明らかに私の意見です:) 素敵な一日を! – czupe

5

これを行うには、いくつかの方法があります:file_get_contents()nl2br()を使用して

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

これは<>&のような特別なエンティティを解決することはできません、あなたは使用する必要がありますhtmlspecialchars()

echo nl2br(htmlspecialchars(file_get_contents('filename.txt'))); 

おそらく、より良い解決策はfile()で配列にファイル全体を読み込むことになるとトラフすべての要素(あなたが将来的にそうテーブルに行を入れたりすることができるでしょう)

$data = file('filename.txt'); 
foreach($data as $line){ 
    echo htmlspecialchars($line) . '<br />'; 
} 

を繰り返すそして、あなたは大量に処理する必要がある場合データのそれはfopen()fgets()で順次それを行うのがベストだろう:

$fp = fopen('filename.txt', 'r') or die('Cannot open file'); 
while($line = fgets($fp)){ 
    echo htmlspecialchars($line) . '<br />'; 
} 
fclose($fp); 
関連する問題