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 ミリ秒
-
前の記事
php8.0 弱いマップを使用する 2020.12.09
-
次の記事
php8.0 parse_strでエラー「Uncaught ArgumentCountError: parse_str() expects exactly 2 arguments, 1 given in」が発生する 2020.12.09
コメントを書く