Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 06.05.2009, 14:01   #1
Новичок
 
Регистрация: 11.03.2009
Сообщений: 38
Вес репутации: 186
Pontushok скоро станет известенPontushok скоро станет известен
По умолчанию Перевод строки в php

Люди добрые, подскажите. На сайте есть возможность выставления комментарий. Перед записывания в БД MySQL я обрабатываю коммент следующими функциями:

function html_decode($string){
$string = htmlspecialchars_decode($string);
$string = html_entity_decode($string);
return trim($string);
}

function html_secure($string){
$string = strip_tags($string, '<b><i>');
$string = htmlspecialchars(stripslashes($string));
$string = mysql_escape_string($string);
return trim($string);
}

Между двумя функциями проверяются стоп-слова.
Так вот, если в комменте использовали перевод строки, то в БД попадает запись \r\n. Пробовал php str_replace() и даже sql replace(). str_replace() ничего не делает, sql replace() уже после записи в БД вообще не видит вхождение строки \r\n и соответсвенно не может ее заменить. Пробовал менять тип поля с text на varchar - та же фигня. Если убрать mysql_escape_string($string), то проблема решается, перевод строки заменяется на пробел, но стремно как-то без mysql_escape_string($string).

Как можно решить проблему? Буду очень признателен!
Pontushok вне форума   Ответить с цитированием
Старый 06.05.2009, 14:32   #2
Мастер
 
Аватар для DNA
 
Регистрация: 23.09.2008
Адрес: СССР
Сообщений: 683
Вес репутации: 228
DNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущее
Отправить сообщение для DNA с помощью ICQ
По умолчанию

nl2br
DNA вне форума   Ответить с цитированием
Старый 06.05.2009, 14:39   #3
Старый зулус
 
Аватар для slavs™
 
Регистрация: 18.02.2008
Адрес: КваЗулу-Наталь
Сообщений: 1,649
Вес репутации: 338
slavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущее
По умолчанию

Pontushok, а почему не используете nl2br
slavs™ вне форума   Ответить с цитированием
Старый 06.05.2009, 15:02   #4
Новичок
 
Регистрация: 11.03.2009
Сообщений: 38
Вес репутации: 186
Pontushok скоро станет известенPontushok скоро станет известен
По умолчанию

Во-первых, не знал о nl2br. А во-вторых все равно не работает. echo nl2br($comment['message']) и выводит: yuhjkhkhh\r\nhjkh\r\njkjh
Pontushok вне форума   Ответить с цитированием
Старый 06.05.2009, 15:25   #5
Мастер
 
Аватар для DNA
 
Регистрация: 23.09.2008
Адрес: СССР
Сообщений: 683
Вес репутации: 228
DNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущее
Отправить сообщение для DNA с помощью ICQ
По умолчанию

Цитата:
Сообщение от Pontushok Посмотреть сообщение
echo nl2br($comment['message']) и выводит: yuhjkhkhh\r\nhjkh\r\njkjh
Тогда вырезайте c помощью str_replace.
Цитата:
...
$string = mysql_escape_string($string);
$string = str_replace('\r\n','',$string);
return trim($string);
...
Обратите особое внимание на выделенные фрагменты. Кавычки в вашем случае должны быть одинарными.
DNA вне форума   Ответить с цитированием
Старый 06.05.2009, 15:45   #6
Новичок
 
Регистрация: 11.03.2009
Сообщений: 38
Вес репутации: 186
Pontushok скоро станет известенPontushok скоро станет известен
По умолчанию

Супер. $string = str_replace('\r\n','<br />',$string); сработало. Видимо, я до этого пробовал с двойными ковычками. Всем респект!
Pontushok вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение строки 15828 Пожелания пользователей системы 0 07.02.2009 22:41
перевод страницы со 2ув на 3ув sats Вопросы от новичков 2 22.11.2008 23:31
Ссылки с новой строки alexr Курилка 8 08.10.2008 19:17
Качественный перевод Chervechok Деловое сотрудничество 20 17.05.2008 10:50
Цифра по ВС разъезжается на 2 строки Bipa Ошибки при работе с системой 0 05.12.2007 10:00


Часовой пояс GMT +3, время: 07:07.