
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||||||||||
![]() © Nixon official ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 1600 Пользователь №: 30142 На форуме: Карма: 18 Трезвый : 32 года, 10 дней ![]() |
nl2br() Как можно убрать лишние ентеры? То есть, если пользователь несколько раз нажал на Enter, нужно оставить максимум 2 и не растягивать страницу впустую
![]() Спустя 24 минуты, 14 секунд (7.01.2012 - 18:08) inpost написал(а): Ramzil_Nixon Прежде сделать трим. Спустя 1 минута (7.01.2012 - 18:09) Ramzil_Nixon написал(а): inpost, попробую, спасибо Спустя 1 минута, 57 секунд (7.01.2012 - 18:11) Ramzil_Nixon написал(а): trim(nl2br(htmlspecialchars($User['sebe']))) Сделал так, но ентеры по прежнему очень много Спустя 4 минуты, 31 секунда (7.01.2012 - 18:16) Placido написал(а): Так попробуй: nl2br(htmlspecialchars(preg_replace('#(\r\n){2,}#', '\1\1', $User['sebe']))); Спустя 1 минута, 19 секунд (7.01.2012 - 18:17) Ramzil_Nixon написал(а): Placido, действует ![]() ![]() Спустя 10 минут, 16 секунд (7.01.2012 - 18:27) inpost написал(а): Ramzil_Nixon ПРЕЖДЕ, а не после.... Ты математику в школе не учил: 2*(2+2) - какое действие раньше будет выполняться? Так и тут, ТРИМ до nl2br... Спустя 13 минут, 16 секунд (7.01.2012 - 18:41) Ramzil_Nixon написал(а): inpost ![]() Спустя 16 дней, 23 часа, 55 минут, 27 секунд (24.01.2012 - 18:36) Ramzil_Nixon написал(а):
$StenaPrint .= nl2br(trim(htmlspecialchars($TopikStena['message']))); Без разницы, все равно результать одна и та же Спустя 1 час, 7 минут, 28 секунд (24.01.2012 - 19:43) neadekvat написал(а): Placido, \r\n - это dos стиль. А как же пользователи никсов и яблок? Спустя 9 минут, 31 секунда (24.01.2012 - 19:53) Winston написал(а):
Тогда достаточно написать preg_replace('#([\r\n]{2,})#', '\1\1', $User['sebe']); Будут и никсы и яблоки пахать. Спустя 3 минуты, 39 секунд (24.01.2012 - 19:57) inpost написал(а): Только не \1\1 , а просто \1 И в скобки взять фигурные скобки, а не всю найденную строку. Замены то не будет. neadekvat Забей на них! Или ты предлагаешь ИЛИ/ИЛИ писать?! Спустя 2 минуты (24.01.2012 - 19:59) neadekvat написал(а):
Нет, таки Winston показал. А забивать - нельзя, мы же не в песочнице, чтобы плевать, зная о потенциально нерабочей системе. preg_replace('#([\r\n]{2,})#', '\1\1', $User['sebe']); Стоп, тут что-то более интересное. Один перенос в windows заменится на два, если я не ошибаюсь. Спустя 2 минуты, 49 секунд (24.01.2012 - 20:01) inpost написал(а): neadekvat Скобки неправильно указаны ![]() Спустя 2 минуты, 44 секунды (24.01.2012 - 20:04) neadekvat написал(а):
Хренас там. Не в скобках дело. Таки правильным вариантом будет такой: preg_replace('#(\r\n|\r|\n){3,}#', '\1\1', $str); Спустя 7 минут, 29 секунд (24.01.2012 - 20:12) inpost написал(а): neadekvat Со скобками неправильно! А написал через ИЛИ, как я и сказал выше ![]() Спустя 1 минута, 35 секунд (24.01.2012 - 20:13) neadekvat написал(а): inpost, вынеси {2,} за скобки - и ничего не измениться.
Да, я пришел к выводу, что это будет единственным верным решением. По крайней мере, наиболее читабельным. Спустя 1 минута, 53 секунды (24.01.2012 - 20:15) inpost написал(а): neadekvat (\n{2,}) - может выберет от 2-х, до 100 символов. Если 100 символов выбралось, то все 100 и заменит на другие 100, потому что все символы в скобках. (\n){2,} - выберутся те же 100 символов, только заменятся они на тот 1 символ, который попал в скобки. Спустя 27 минут, 23 секунды (24.01.2012 - 20:43) neadekvat написал(а): inpost, ты рассматриваешь уже другой случай. Но уже неважно, я на другой задаче мозгами. -------------------- Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...
![]() |
||||||||||
![]() |
![]() ![]() ![]() |