Задать вопрос

PHP mb_ereg_replace — вынужден обратиться к хабру, не понимаю проблемы?

Здравствуйте.

С непонятной для меня проблемой столкнулся. Мне требуется записать в базу данных из textarea данные с переносом строки [br] у меня не получается. Перепробовал тучу способов включая мультибайты хотя они тут не должны быть никак связаны.


Стока $message:
Это мой уникальный контент,\r\nЭто перенос строки,\r\nА это запрос к БД \' OR \'


Надо преобразовать в
Это мой уникальный контент,[br]Это перенос строки,[br]А это запрос к БД \' OR \'


Пробовал следующими способами, перечисляю все.
// самый совершенный вариант относительно UDF-8
$text = mb_ereg_replace("\r\n|\r|\n", "[br]", $message);

// Из документации PHP
$order   = array("\r\n", "\n", "\r");
$replace = '[br]';
$text = str_replace($order, $replace, $message);

// Теоретически самый правильный вариант
$text = nl2br ($message);

// Другие варианты со стек оверфлова заключающиеся в реализации mb_str_replace



Платформа

Windows

XAMPP

PHP 5.3.8

Вся работа в UTF-8 начиная с HTML кончая PHP.


Что я делаю не так? У меня в $text вылезает та же строка. Так должно быть или я неудачник?


PS: это работает безупречно!
$text = mb_ereg_replace("мой", "[br]", $message);


У меня варианты кончились. Что делать не знаю.


PS2: Что-то с подсветкой на хабре случилось. Все [br] считать как за тег <..>, ибо естественно в БД я буду писать статику, но не в этом суть дела.
  • Вопрос задан
  • 3890 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
iStyx
@iStyx
А в тексте у вас точно \r\n, а не символ_слэша+r(n)?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
wartur
@wartur Автор вопроса
Извиняюсь, проблема решена. Для тех кто вдруг наткнулся.
До этого момента я со строкой $message поглумился этой функцией mysql_real_escape_string — она заменяет все специальные символы, включая переносы строк. Поэтому невозможно найти их потом. Надо их искать как \\r и \\n.

Проблема в том, что я реально сдуплил с тем, что а XDEBUG все равно показывал \r\n а они там уже были в виде символов, а не в виде специальных символов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы