HTML での改行文字の保持
改行または "rn" 文字を HTML ブレーク タグ ("
")、ユーザーはさまざまなメソッドを使用したにもかかわらず問題が発生しました。
メソッド探索
preg_replace():
<code class="php">$description = preg_replace('/\r?\n|\r/', '<br/>', $description);</code>
str_replace():
<code class="php">$description = str_replace(array("\r\n", "\r", "\n"), '<br/>', $description);</code>
nl2br():
<code class="php">$description = nl2br($description);</code>
予期せぬ結果
これらのもっともらしい方法にもかかわらず、テキスト内に改行が残りました。その理由は、予期せぬ二重改行 (「rr」) の存在にありました。これは置き換えを妨げるものではありませんが、さらなる調査が必要です。
nl2br() 関数
nl2br() の存在に注意することが重要です。 関数。改行文字の前に "
" タグを明示的に挿入します。
<code class="php"><?php // Won't work $desc = 'Line one\nline two'; // Should work $desc2 = "Line one\nline two"; echo nl2br($desc); echo '<br/>'; echo nl2br($desc2); ?></code>
二重引用符付きテキスト
さらに、特別な注意が必要です。テキストを変数に割り当てるときに二重引用符を使用する必要があります。
<code class="php">$description = "Line one\nline two"; // Correct $description = 'Line one\nline two'; // Incorrect</code>
これは、一重引用符が、新しいものを解釈するのに重要な「n」などのエスケープ シーケンスを「展開」しないためです。行文字。
以上が改行文字が HTML ブレーク タグに変換されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。