PHP: br2nl или преобразование тегов <br> в переносы строк

В языке PHP существует стандартная функция br2nl, которая преобразовывает переносы строк в HTML-тег переноса строки (<br>). Провернуть обратную операцию достаточно просто с помощью регулярных выражений, однако тут есть одна маленькая хитрость.

Дело в том, что функция nl2br не заменяет переносы строк на тег <br>, а добавляет этот тег к переносу строки. Таким образом, если например при редактировании материала вы преобразуете переносы в тег с помощью nl2br, а затем при его отображении в другом скрипте выполняете обратную операцию — то переносов будет уже два. Поэтому предлагаемая мною функция не только ЗАМЕНЯЕТ HTML-теги <br> на символы переноса строки, но и удаляет уже существующие переносы, чтобы исключить дублирование. Функция обрабатывает как теги <br> так и <br />.
function br2nl($str) {
$str = preg_replace("/(rn|n|r)/", "", $str);
return preg_replace("=<br */?>=i", "n", $str);
}

2 мысли о “PHP: br2nl или преобразование тегов <br> в переносы строк”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *