【PHP】本当のnl2brの逆関数【PHP4, 5, 7】
以前書いていたブログのリライト、備忘録メモです。
会社で以前使うタイミングがあったので、その時に作ったものです。
PHPには本来、「nl2br」関数の逆の関数は存在しません。
「nl2br」関数というのは、\n
等の改行文字の前にbr
等のHTML改行タグを挿入する関数です。
この逆の関数(いわゆるbr2nl)は、一見br
を\n
に変換するものと考えられがちで、
preg_replace('/<br[[:space:]]*\ ?[[:space:]]*="">/i', "\n", $string);
のような正規表現で書かれています。
でも実際は違って、「nl2br」は改行文字の前にHTML改行タグを挿入する関数なので、元の\n
自体は残ります。
なのでこの逆を行う関数では、単に新しく挿入されたbr
を消せばいいだけ。つまり、
function br2nl($string)
{
return preg_replace('/\ ?[[:space:]]="">/i', "", $string);
}
となります。
これでいくら「nl2br」と「br2nl」を繰り返しても、br
が増え続けることはなくなり、本当の逆関数にすることが出来ました。
この不思議な関数名ですが、調べてみたところ、「newline to br」の略とのことです。英語圏では「to → 2」「for → 4」などはよく使われますが、関数名でも普通に使われるんですね。
今回紹介したような基礎的な部分も、プログラミングスクールで学ぶことで体系的、効率的に学ぶことができます。
特に初心者の方で、Progateやドットインストール、書籍で勉強しながらも「もう少し専門的なところまで学びたい」や「分からないところがあるが気軽に聞ける相手がいない」などの悩みを持っている方は多いです。
プログラミングスクールではそういった初心者からWebエンジニアとして羽ばたくまでをプロの講師がサポートしてくれます。無制限のレビューや相談が出来るところも多いので、一度検討してみてはいかがでしょうか。
このブログでも各プログラミングスクールを比較しながら紹介していますので、興味がある方は是非ご覧ください。
【現役エンジニア実体験】おすすめWebプログラミングスクールの選び方【無料あり】
今熱い業界のプログラミングを学べるWebプログラミングスクールの紹介です。会社でWeb責任者を担っている僕もかつて通っていた経験を踏まえ、数多くあるスクールから3社を選別しました。