Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Subfire
Зарегистрирован: 11.12.2002 Сообщения: 185
|
Добавлено: Вт Дек 03 2002 17:03 Заголовок сообщения: PHP - удаление /n/r |
|
|
Странное дело... Вот у меня из формы в PHP скрипт отпрвляются данные из TEXTAREA. Как можно заметить, разрыв строк там кодируется как последовательность /n/r (0A,0D hex, %0A%0D как url строка). Пробую удалить их nl2br (перенос строк заменяется на html тег). Что интересно, заменяется на тег <br /> со слешем в конце =) Ну это ладно еще, заменяется только /n, а /r остается... Вспоминаю хитрость, что в *nix разрыв строк и переход на новую просто /n а в винде /n/r. Тогда пробую htmlentities: (Переводит все возможные символы в коды HTML. - по описанию). И тут та же фигня...что меня совсем удивляет!!! (правда, эта функия уже просто <br> выводит =) Если с nl2br можно понять - ориентирована на *nix, то почему htmlentities оставляет /r "как есть"? Прихолится делать ereg_replace("\r\n","",$str) что по скорости должно быть вообщем-то идентично...но все равно неприятно =) Это скорее не вопрос, а мой опыт для тех кто может столкнуться с такой вещью... Вообще, когда я беру строку из формы я пишу: $msg=ereg_replace("\r\n","<br>",ucfirst(htmlspe cialchars($msg))); что позволяет избавиться от тегов в тексте и заменить все переносы строки на br |
|
Вернуться к началу |
|
|
Олигарх
Зарегистрирован: 28.09.2002 Сообщения: 102
|
Добавлено: Вт Дек 03 2002 17:15 Заголовок сообщения: Re: |
|
|
Тебя послушать - так профессионал, а элементарщину не знаешь...
На "ограниченном языке" РНР это делается просто:
$text = str_replace("\r", "", $text); $text = str_replace("\n", "", $text); |
|
Вернуться к началу |
|
|
Subfire
Зарегистрирован: 11.12.2002 Сообщения: 185
|
Добавлено: Ср Дек 04 2002 11:29 Заголовок сообщения: Re: |
|
|
Здравстсвуй попа новый год, приходи на елку... Ты видимо абсолютно невнимательно читал =) Я же не спрашивал у тебя как решить задачу - решение абсолютно тривиально, и я его привел=) И то что ты предлагаешь скорее говорит о твоей некомпетентости как программиста. Ведь как мы знаем, у нас идет подряд \r\n так что str_replace("\r\n", "", $text); вместо $text = str_replace("\r", "", $text); $text = str_replace("\n", "", $text);
Что работает ЗНАЧИТЕЛЬНО быстее. Оптимизировать нужно на алгоритмическом уровне. А ereg_replace я использую по особым соображениям. Под ограниченным ты судя по всему имеешь ввиду PHP/FI... |
|
Вернуться к началу |
|
|
|