Опять 26: \n, \r, nl2br...

Buger

Guest
Опять 26: \n, \r, nl2br...

Сразу оговорюсь - не надо меня в поиск носом тыкать, искал, читал - не помогает.

Есть форма с текстовым многострочным полем.
После сабмита динные из поя плюхаются в MySQL базу.
Дальше (при следующей загрузке страницы) это поле автоматом заполняется из базы.
Если в веденном тексте есть символы переноса то они ничем не прибиваются (остаются):
nl2br - добавляет "<br />", но переносы остаются.
str_replace("\n|\r", "<br>", $string) - оставляет переносы... =(


Вопрос какое значение (или может быть символ) у переноса строки в форме?
Или сразу - как его, заразу, убрать нафих или заменить на что-нибудь?

-~{}~ 12.04.05 17:36:

Есть конечно бредовые идеи - ну там типа - разбить строку в массив эксплодом (в качестве разделителся пробел), а потом все члены массива в строку сложить... может и поможет, но бред, помоему... =(
 

Domovoj

Guest
Re: Опять 26: \n, \r, nl2br...

Автор оригинала: Buger
Сразу оговорюсь - не надо меня в поиск носом тыкать, искал, читал - не помогает.

Есть форма с текстовым многострочным полем.
После сабмита динные из поя плюхаются в MySQL базу.
Дальше (при следующей загрузке страницы) это поле автоматом заполняется из базы.
Если в веденном тексте есть символы переноса то они ничем не прибиваются (остаются):
nl2br - добавляет "<br />", но переносы остаются.
str_replace("\n|\r", "<br>", $string) - оставляет переносы... =(


Вопрос какое значение (или может быть символ) у переноса строки в форме?
Или сразу - как его, заразу, убрать нафих или заменить на что-нибудь?
А как ты определяешь, что переносы остались?
 

Buger

Guest
Беру строку из базы, вставляю в JS (JavaScript)
Гружу страницу - браузер ругается - "неожиданный конец строки"
Смотрю html - внатуре переносы остались как были. =(

-~{}~ 12.04.05 17:44:

(Ну всмысле в php формирую JS script на паге с данными из базы)
Альтернативного решения пока не придумал. =(
 

Buger

Guest
Ок, вставляет. =)
А как переносы-то убрать?...
 

WeirD

Новичок
Идем в мануал http://php.net/nl2br, читаем комментарий от 31-Jan-2005 04:28

Или читаем там же о функции str_replace.
 

Buger

Guest
О, ётить!
Помогло - str_replace ("\r\n", "", $str);
Не понял почему , но помогло. =)
 

Buger

Guest
2WeiD: а вот то, что в комменте написанно - как раз не фунциклирует.
 

Buger

Guest
Заменять \r или \n
Видел в примерах - тут знак "|" расценивается как or или типа того. =)
 

WeirD

Новичок
Фанат
Ну не все... есть еще незнание например...
Или нежелание узнать...

От этого тоже возникает немало проблем

P.S. Прошу прощения за оффтоп
 

Фанат

oncle terrible
Команда форума
и ещё от того, что на собственную невнимательность/криворукость никто не подумает НИКОГДА.
это в пхп бага. база виновата. браузер кривой.

а подумать о том, что это ТЫ не смог с мана срисовать даже 10 букв без ошибки - это нашим "программистам" НИКОГДА в голову не придёт.
 

docker

Новичок
ТАм пишется строка, а не регулярное выражение, у тебя будет искаться и заменяться не \r или \n, а именно вся строка "\r|\n"

В этом случае лучше так написать:
str_replace(array("\r","\n"), array("",""), $str);
 
Сверху