[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регулярка символы новых строк
konb
Привет есть текст, в нем участвуют символы новых строк \r\n, зделал 2 регулярных выражения 1: режет \r\n\r\n подставляет <p>

//$s - произвольная строка в которой символы новых строк участвуют естественно
$p = '#(\r\n\r\n)+#';
$r = '</p><p>';//у меня функция именно так <p> ставит потому как есть нужда в этом они все потом закрываются
$s = preg_replace($p, $r, $s);

и 2е: режет \r\n подставляет <br />

$p_br = '#\r\n#';
$r_br = '<br />';
$s = preg_replace($p_br, $r_br, $s);


все отлично, но есть проблема неприятная, если вдруг случается что строку пропустили 3 раза т.е. \r\n\r\n\r\n получилось, то выходит вот это
<p><br />блаблабла</p>
внимание вопрос: как избавиться с помощью моих регулярок или модифицированных от этого <br />'a спасибо



Спустя 12 часов, 13 минут, 55 секунд (13.11.2011 - 16:10) Winston написал(а):
Как-то я не совсем догнал насчет
Цитата (konb @ 13.11.2011 - 02:56)
все отлично, но есть проблема неприятная, если вдруг случается что строку пропустили 3 раза т.е. \r\n\r\n\r\n получилось, то выходит вот это


Спустя 1 час, 18 минут, 9 секунд (13.11.2011 - 17:28) flinth написал(а):
Цитата (Winston @ 13.11.2011 - 13:10)
Как-то я не совсем догнал насчет
Цитата (konb @ 13.11.2011 - 02:56)
все отлично, но есть проблема неприятная, если вдруг случается что строку пропустили 3 раза т.е. \r\n\r\n\r\n получилось, то выходит вот это

тему я начал, зарегался просто, имеется в виду что в текст арея при написании текста, нажав enter 3 раза в результате появиться (\r\n\r\n\r\n) уже после сабмита напечатанного, если 1 раз enter нажать то появиться (\r\n) надеюсь объяснил, а мои регулярки когда обрабатывают, одна смотрит только соответствия с \r\n\r\n и заменяет ее на тэг <p> а вторая \r\n заменяет на <br /> при 3 enter'ах выходит появиться после обработки регулярками один тэг <p> а следом <br /> а мне в новом <p> бр совсем не нужнен, как избавиться?

Спустя 2 часа, 6 минут, 17 секунд (13.11.2011 - 19:34) Игорь_Vasinsky написал(а):
biggrin.gif biggrin.gif biggrin.gif какой хитрый у тебя PHP, ну ты disable кнопки делай после первого клика или nl2br() юзай.

Спустя 18 минут, 26 секунд (13.11.2011 - 19:53) flinth написал(а):
Цитата (Игорь_Vasinsky @ 13.11.2011 - 16:34)
:D :D :D какой хитрый у тебя PHP, ну ты disable кнопки делай после первого клика или nl2br() юзай.

честно говоря не понял о disable какой кнопки идет речь, и nl2br как раз будет ставить брки а мне от них уйти и надо)) мне параграфы нужны)
переделал первую регулярку

$text = '<p>'.$text;
$p_p = '#(\r\n\r\n\r\n|\r\n\r\n)+#';
$r_p '</p><p>';
$text = preg_replace($p_p, $r_p, $text);
$text .= '</p>';


спасает от несколько пропущенных строк при написании текста в текст ариа

Спустя 18 часов, 7 минут, 37 секунд (14.11.2011 - 14:00) Winston написал(а):
Добавь еще третью регулярку :) Чтобы вырезался перенос который попадет в начало параграфа
$str = '<br /><p><br />блаблабла</p><br /><br /><p><br />блаблабла</p><br />';
echo preg_replace('#(?<=<p>)\s*<br />#s', '', $str);

Спустя 48 минут, 33 секунды (14.11.2011 - 14:49) flinth написал(а):
О кажется я это и искал, спасибо, теперь более мение разобрался
Быстрый ответ:

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