[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: nl2br() Как можно убрать лишние ентеры?
Ramzil_Nixon
nl2br() Как можно убрать лишние ентеры? То есть, если пользователь несколько раз нажал на Enter, нужно оставить максимум 2 и не растягивать страницу впустую rolleyes.gif



Спустя 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, действует biggrin.gif Держи свой + smile.gif

Спустя 10 минут, 16 секунд (7.01.2012 - 18:27) inpost написал(а):
Ramzil_Nixon
ПРЕЖДЕ, а не после.... Ты математику в школе не учил: 2*(2+2) - какое действие раньше будет выполняться? Так и тут, ТРИМ до nl2br...

Спустя 13 минут, 16 секунд (7.01.2012 - 18:41) Ramzil_Nixon написал(а):
inpost
biggrin.gif Скобки

Спустя 16 дней, 23 часа, 55 минут, 27 секунд (24.01.2012 - 18:36) Ramzil_Nixon написал(а):
Цитата (inpost @ 7.01.2012 - 15:27)
Так и тут, ТРИМ до nl2br...

	$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 написал(а):
Цитата (neadekvat @ 24.01.2012 - 18:43)
Placido, \r\n - это dos стиль. А как же пользователи никсов и яблок?

Тогда достаточно написать
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 написал(а):
Цитата (inpost @ 24.01.2012 - 20:57)
Забей на них! Или ты предлагаешь ИЛИ/ИЛИ писать?!

Нет, таки Winston показал. А забивать - нельзя, мы же не в песочнице, чтобы плевать, зная о потенциально нерабочей системе.

preg_replace('#([\r\n]{2,})#', '\1\1', $User['sebe']);

Не вижу смысла искать два переноса и менять их на два таких же переноса.
Стоп, тут что-то более интересное. Один перенос в windows заменится на два, если я не ошибаюсь.

Спустя 2 минуты, 49 секунд (24.01.2012 - 20:01) inpost написал(а):
neadekvat
Скобки неправильно указаны smile.gif

Спустя 2 минуты, 44 секунды (24.01.2012 - 20:04) neadekvat написал(а):
Цитата (inpost @ 24.01.2012 - 21:01)
Скобки неправильно указаны

Хренас там. Не в скобках дело.
Таки правильным вариантом будет такой:
preg_replace('#(\r\n|\r|\n){3,}#', '\1\1', $str);

Спустя 7 минут, 29 секунд (24.01.2012 - 20:12) inpost написал(а):
neadekvat
Со скобками неправильно! А написал через ИЛИ, как я и сказал выше smile.gif

Спустя 1 минута, 35 секунд (24.01.2012 - 20:13) neadekvat написал(а):
inpost, вынеси {2,} за скобки - и ничего не измениться.

Цитата (inpost @ 24.01.2012 - 21:12)
А написал через ИЛИ, как я и сказал выше

Да, я пришел к выводу, что это будет единственным верным решением. По крайней мере, наиболее читабельным.

Спустя 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, ты рассматриваешь уже другой случай.
Но уже неважно, я на другой задаче мозгами.


_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Быстрый ответ:

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