php nl2brで改行の前にbrタグを挿入する

  • 作成日 2020.12.09
  • 更新日 2022.03.29
  • php
php nl2brで改行の前にbrタグを挿入する

phpで、nl2brを使用して、改行の前にbrタグを挿入するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Stream release 8
  • php 8.0.0
  • nginx 1.14.1

nl2br使い方

nl2brを使用すれば、改行の前にbrタグを挿入することが可能です。

nl2br(文字列);

以下は、改行を含んだ文字列の改行の前にbrタグを挿入するサンプルコードとなります。

<?php

$str = "mebee" . PHP_EOL . "info" . PHP_EOL;

$result = nl2br($str);

var_dump($result);

実行結果

string(23) "mebee<br />
info<br />
"

<br>にする場合は、第二引数に「false」を指定します。

<?php

$str = "mebee" . PHP_EOL . "info" . PHP_EOL;

$result = nl2br($str, false);

var_dump($result);

実行結果

string(19) "mebee<br>
info<br>
"

また「ダブルクォーテーション」を使用した文字列は、ちゃんと「<br />」が表示されますが、

<?php

$str= "mebee\nmebee\r\nmebee";

$result = nl2br($str);

var_dump($result);
// string(32) "mebee<br />
// mebee2<br />
// mebee3"

「シングルクオーテーション」の場合は、文字列の中にエスケープシーケンスが入っていても意味を持たないため注意が必要です。

<?php

$str= 'mebee\nmebee\r\nmebee';

$result = nl2br($str);

var_dump($result);
// string(21) "mebee\nmebee\r\nmebee"

ちなみに、str_replaceを使用しても、同じ結果を得ることができます。

<?php

$str = "mebee" . PHP_EOL . "info" . PHP_EOL;

$result = str_replace([PHP_EOL], "<br />". PHP_EOL, $str);

var_dump($result);

実行結果

string(23) "mebee<br />
info<br />
"

同じコードの場合は「nl2br」のパフォーマンスはいいです。

【参考】 同じコードを1000万回実行した結果

測定結果 : nl2br
process time: 2.81465 ミリ秒

測定結果 : str_replace
process time: 3.60236 ミリ秒