0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

nl2br関数使用時のブラウザ画面の挙動まとめ

Last updated at Posted at 2022-05-22

経緯

nl2br関数を文字列に適用させる際に、''と""で囲んだ際のソースコード画面およびブラウザ画面の挙動の違いを整理したかったため。

環境

  • 言語 php 7.4.29
  • ブラウザ Google Chrome
  • macOS Monterey 12.1 (M1チップ)

検証結果まとめ

テストケース テスト文字列 nl2br適用 Webページでのソースコード表示 ブラウザ画面
1 '\n' なし 改行なし(\nがそのまま表示) 改行なし(\nがそのまま表示)
2 '\n' あり 改行なし(\nがそのまま表示) 改行なし(\nがそのまま表示)
3 "\n" なし 改行あり(\nが消失) 改行なし(\nが消失し、半角スペースが入る)
4 "\n" あり 改行あり(\nが消失し、<br />タグが出現) 改行あり(\nが消失)

検証コード

検証テスト1〜4
<?php
$singleQ = 'ここで\n改行です';
$doubleQ = "ここで\n改行です";
?>

<?php echo 'テスト1:' . $singleQ; ?>
<p></p>  <!-- 空白行挿入のため(テスト2~4も同様) -->

<?php echo 'テスト2:' . nl2br($singleQ); ?>
<p></p>

<?php echo 'テスト3:' . $doubleQ; ?>
<p></p>

<?php echo 'テスト4:' . nl2br($doubleQ); ?>
<p></p>

image.png

余談

htmlspecialcharsを絡めた話は複雑になるので検討対象から外しました。
忘備のため、ちょっとしたことをメモとして記載しておきます。

<メモ>
htmlspecialcharsとnl2brを併用する場合は、順番に留意すること

htmlspecialchars → nl2br  brタグとして認識されブラウザ画面で改行が反映
nl2br → htmlspecialchars  brタグの<>がエスケープされブラウザ画面で改行が未反映
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?