ホームページ > バックエンド開発 > PHPチュートリアル > 改行文字が HTML ブレーク タグに変換されないのはなぜですか?

改行文字が HTML ブレーク タグに変換されないのはなぜですか?

Susan Sarandon
リリース: 2024-11-04 20:18:02
オリジナル
990 人が閲覧しました

Why Are My Newline Characters Not Converting to HTML Break Tags?

HTML での改行文字の保持

改行または "rn" 文字を HTML ブレーク タグ ("
")、ユーザーはさまざまなメソッドを使用したにもかかわらず問題が発生しました。

メソッド探索

  1. preg_replace():

    <code class="php">$description = preg_replace('/\r?\n|\r/', '<br/>', $description);</code>
    ログイン後にコピー
  2. str_replace():

    <code class="php">$description = str_replace(array("\r\n", "\r", "\n"), '<br/>', $description);</code>
    ログイン後にコピー
  3. 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート