[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Логическое выражение замены
cyberside
Есть проблема с переносом строк. Используеться nl2br();

1. - Как заменить 2 и более переносов 1м.
2. - Как заменить более 5 и более переносов строк 2мя.
3. - Как убрать переносы с самого начала.

Пример:
Получено:
<br /><br />TEXT<br /><br /><br />TEXT<br />TEXT<br /><br /><br /><br /><br />TEXT

Привести к:
TEXT<br />TEXT<br />TEXT<br /><br />TEXT




Спустя 6 минут, 43 секунды (26.12.2011 - 22:21) Xes написал(а):
$comment = preg_replace('#(?:<br\s/>)+#su', '<br />', $comment);

заменить много на один

Спустя 5 минут, 30 секунд (26.12.2011 - 22:27) cyberside написал(а):
$comment == пусто)))

Спустя 19 часов, 31 минута, 26 секунд (27.12.2011 - 17:58) cyberside написал(а):
up

Спустя 42 минуты, 42 секунды (27.12.2011 - 18:41) Xes написал(а):
код давай, только не портянку на пол листа а по делу.

Спустя 7 минут, 56 секунд (27.12.2011 - 18:49) cyberside написал(а):

$comment = "<br /><br />Комментарий<br /><br /><br />Переносы нужно сократить до 1<br />И убрать все в конце комментария и в начале<br />";
$comment = trim(htmlspecialchars($comment));
$comment = nl2br($comment);

Спустя 21 минута, 20 секунд (27.12.2011 - 19:10) Xes написал(а):
а где применение того кода что я тебе дал?

Спустя 2 минуты, 48 секунд (27.12.2011 - 19:13) alex12060 написал(а):
cyberside

регулярки
или trim

Спустя 10 минут, 6 секунд (27.12.2011 - 19:23) cyberside написал(а):
$comment = htmlspecialchars($comment);
$comment = nl2br($comment);
$comment = preg_replace('#(?:<br\s/>)+#su', '<br />', $comment);

Спустя 1 минута, 52 секунды (27.12.2011 - 19:25) alex12060 написал(а):
cyberside


$comment = preg_replace("[\n+]", "\n", $comment);
$comment = htmlspecialchars($comment);
$comment = nl2br($comment);

Спустя 3 минуты, 24 секунды (27.12.2011 - 19:28) cyberside написал(а):
Спасибо, и для уточнения: [\n+] = более чем 1?

Спустя 3 минуты, 50 секунд (27.12.2011 - 19:32) Xes написал(а):
Цитата (cyberside @ 27.12.2011 - 16:23)
$comment = htmlspecialchars($comment);
$comment = nl2br($comment);
$comment = preg_replace('#(?:<br\s/>)+#su', '<br />', $comment);

Верно. Че не работает?
Цитата
[\n+] = более чем 1?

Да

Спустя 2 часа, 24 минуты, 49 секунд (27.12.2011 - 21:57) killer8080 написал(а):
alex12060
квантификатор должен быть после закрывающей квадратной скобки smile.gif

cyberside
зачем nl2br(), если текст уже обработан и содержит тэги <br />?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.