【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が増え続けることはない。
管理ページで使っててはてと思ったので書いてみました。
どうでもいいけど、この関数名謎すぎる。