Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с nl2br и maxlength

45K
19 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
Итак. Когда юзер отправляет данные, они обрабатываются функцией nl2br(); чтобы все его самостоятельные "enterы" переходили на новую строку. А также стоит ограничение в X символов. Проблема в том, что можно просто добавить текст, который будет вводится одними entарами (т.е. переходы на новую строку). т.к. один переход считается за один символ, то можно отправить очень длинный вниз текст без ничего. Как бы этого избежать? Например что бы один переход считался не за один символ, а за 128 допустим.
45K
19 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
фффффф























































































































































лллллл
285
19 мая 2011 года
Romik
479 / / 24.11.2002
Может лучше заменить переводы строк в количестве больше 2-х, на два перевода строки? (чтоб была возможность использования пустых строк)
45K
19 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
Цитата: Romik
Может лучше заменить переводы строк в количестве больше 2-х, на два перевода строки? (чтоб была возможность использования пустых строк)

не подскажите как это сделать?
preg_replace(???,???,$text);

285
19 мая 2011 года
Romik
479 / / 24.11.2002
 
Код:
preg_replace("/([\n]{3,})/m","\n\n",$text);
45K
19 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
/div>

что-то не робит $message = preg_replace("/([\n]{3,})/m","\n\n",$message);

285
19 мая 2011 года
Romik
479 / / 24.11.2002
Подозреваю в $message у вас текст уже с <br>, потому и не работает.
45K
19 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
Цитата: Romik
Подозреваю в $message у вас текст уже с <br>, потому и не работает.


Вроде попробовал во всех местах и до nl2br и после, и при вводе и после ввода. Что-то не робит. Кто знает.

285
19 мая 2011 года
Romik
479 / / 24.11.2002
Вот, условие, при котором не работает
Код:
<?

$v="Hello




World"
;

$b=preg_replace("/([\n]{6,})/m","\n\n",$v);
echo "*$b*";


 
Код:
$ php ./t1.php
*Hello




World*



а вот работающий вариант:
Код:
<?

$v="Hello




World"
;

$b=preg_replace("/([\n]{3,})/m","\n\n",$v);
echo "*$b*";

 
Код:
$ php ./t1.php
*Hello

World*



Вопросы?
45K
19 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
Цитата:
$tablerows[2]=preg_replace("/([\n]{3,})/m","\n\n",$tablerows[2]);
$tablerows[2] = nl2br($tablerows[2]);


вот мой код
где $tablerows[2] берется из базы

285
19 мая 2011 года
Romik
479 / / 24.11.2002
Смотрите свои данные
13
19 мая 2011 года
RussianSpy
3.0K / / 04.07.2006
Применять nl2br не перед вставкой в базу, а перед показом текста. В базе будет храниться с символами перевода строки.
45K
20 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
Так. Проблема так и не решена. Ох запарился. Вот допустим что выводится после парсинга n на <br>:
Цитата:
аваывавыа <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>выфвыа


перед <br> стоит пробел.
Вот как допустим это текст изменить на:

Цитата:
аваывавыа <br> <br>выфвыа


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

45K
20 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
Цитата:
аваывавыа<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> выфвыа


или вот если парсить nl2br

45K
20 мая 2011 года
Дружбин Вечеслав
19 / / 29.06.2009
ФАК ЕААА!! нашел ошибку. Глупо вообще. Я заменял \n, забыв про пробел. надо было заменять \r\n, т.е. preg_replace("/([\r\n]{3,})/m","\n\n",$text);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог