seseragiseven

【PHP】本当のnl2brの逆関数

新サイトに移行しました。

【PHP】本当のnl2brの逆関数【PHP4, 5, 7】| Hatoblog

備忘録。
PHPには本来、nl2br関数の逆の関数は存在しない。nl2br関数というのは、\n等の改行文字の前にbr等のHTML改行タグを挿入する関数。

この逆の関数(いわゆるbr2nl)は、一見br\nに変換するものと考えられがちで、

preg_replace('/<br[[:space:]]*\ ?[[:space:]]*="">/i', "\n", $string);
</br[[:space:]]*\>

のような正規表現で書かれている。

でも実際は違って、この関数は改行文字の前にHTML改行タグを挿入する関数なので、元の\n自体は残る。なのでこの逆を行う関数では、単に新しく挿入されたbrを消せばいいだけ。つまり、

function br2nl($string)
{
	return preg_replace('/<br[[:space:]]*\ ?[[:space:]]*="">/i', "", $string);
}
</br[[:space:]]*\>

となる。
これでいくらnl2brとbr2nlを繰り返しても、brが増え続けることはない。
管理ページで使っててはてと思ったので書いてみました。
どうでもいいけど、この関数名謎すぎる。

サイト移転しました!→「Hatoblog(はとブログ)

この記事をシェアする

コメントを残す

カテゴリー

人気の記事