Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Замена \r\n на <br>
Форумы портала PHP.SU » » Вопросы новичков » Замена \r\n на <br>

Страниц (1): [1]
 

1. S.E.K.T.O.R. - 11 Сентября, 2012 - 06:39:11 - перейти к сообщению
Доброго времени суток!
Товарищи, подскажите!
В общем имеется $text. По умолчания, этот $text берется из БД и все переносы в нем преобразуются в <br>, таким макаром

Но, мне не нравится то, что если в тексте 2,3 или больше идущих подряд переносов, все это преобразуется в 2,3 или больше <br>. То есть можем получить между двумя строками кучу пустых строк, что не есть гуд. Поэтому хочу, что бы было немного по другому, а именно:
если перенос только один (\r\n), мы заменяли его на соответственно один <br>, а если переносов подряд будет 2 и больше, то мы эти 2 и больше заменяли на
CODE (html):
скопировать код в буфер обмена
  1. <span class="post-br"><br />
.
Подскажите правильное решение данной задачи.
Заранее благодарю!
2. Bio man - 11 Сентября, 2012 - 08:16:25 - перейти к сообщению
регуляркой самое простое.
3. Мелкий - 11 Сентября, 2012 - 08:39:39 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $text = nl2br(preg_replace('~(\r\n){2,}~msi', '<span class="post-br"><br />', $text));
4. S.E.K.T.O.R. - 11 Сентября, 2012 - 15:34:34 - перейти к сообщению
Bio man, спасибо!
Мелкий, огромнейшее спасибо! Работает как нужно!

 

Powered by ExBB FM 1.0 RC1