[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения
Страницы: 1, 2
Aeq
можешь сначала прочистить текст от виндо-мако-говна
$text = str_replace(array("\r\n", "\r"), "\n", $text)
а потом заюзать то что у тебя в первом посте, оно вобщем-то правильное, просто без учета винды и мака.
lop_atin
Цитата (bposter @ 5.11.2013 - 20:50)
css line-height: 180%;

та не... мне нужно учитывать:
если один <br>, то ставить соответсвтено 1<br>
если два <br>, то ставить соответсвтено 2<br>
а вот если больше двух, то все равно менять на 2<br>
lop_atin
Цитата (killer8080 @ 5.11.2013 - 18:23)
Цитата (lop_atin @ 5.11.2013 - 17:18)
Вот такой код работает:

а ничего что \s это любой пробельный символ, а не только перевод строки? не смущает? :D

твой вариант работает, когда отдельно сделать:

$text = 
давай
писать

каждое
слово





на

новой
строчке?"
;
echo nl2br(preg_replace('#(\r\n|\r|\n){2}(\r\n|\r|\n)+#', '$1$1', $text));


А вот, если сделать как у меня (достать сообщение из БД и вывести его), то почему, то не хочет... :(


...
$text = nl2br(preg_replace('#(\r\n|\r|\n){2}(\r\n|\r|\n)+#', '$1$1', $text));



echo "
<b>номер:</b> "
.$id."<br>
<b>текст:</b><br>"
.$text."<br><br>
"
;
lop_atin
Цитата (killer8080 @ 5.11.2013 - 02:24)
$text = preg_replace('#(\r\n|\r|\n){2}(\r\n|\r|\n)+#', '', $text);

все заработало, я так понял ошибкой было то, что когда я добавлял в БД запись, то я писал так текст:

$text = "А
(пробел)(пробел)... давайте


(пробел)(пробел)... писать..";

Из-за этих пробелов в начале новой строки функция не работала, кстати, а как именно усовершенствовать функцию, чтобы еще и эти пробелы учитывать?

А так, спасибо большое, оказывается все работало бы и с самого начала! smile.gif

И еще, вы меняете переносы на $1, получается, что это тоже самое что и \n. Есть ли преимущества у каждого из них, или без разница? Спасибо!)
Aeq
Цитата (lop_atin @ 5.11.2013 - 22:10)
И еще, вы меняете переносы на $1, получается, что это тоже самое что и \n. Есть ли преимущества у каждого из них, или без разница? Спасибо!)

не то же самое, а именно то что в скобках. в скобках у тебя или \r\n или \r или \n , вот что конкретно там попалось, то и передастся в $1, а если напишешь там \n, то соответственно на него и будет заменяться.
Zzepish
Лучше заноситьв базу с уже урезаными переносами
Быстрый ответ:

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