![]() |
проблема с nl2br() и <textarea>
помогите, появилась проблема с использованием функции nl2br().
есть форма (с текстареа), в которой набирается текст с использованием синтаксиса для форматирования (например [Ж]жирний текст[/Ж]). Есть анализатор, который перед вставкой в базу заменяет теги этого форматирования на обычные ХТМЛ-теги (теги из примера меняются на <b>жирный текст</b> ). Все работает нормально. Дополнительно очень нужны и теги переноса строки, тоесть <br>. Строка перед анализом на синтаксис пропускается через эту функцию, но теги <br> почему-то не добавляются... Может проблема в том, что нажатие "Enter" в текстовом поле не вставляет символ переноса строки \n? Как вообще можно это реализовать (добавление тега <br> )? Есть конечно идея яваскриптом при нажатии "Enter" вставлять что-то типа [BR], который анализатором менять на <br>, но по моему это уже извращение, да и текст в поле засоряет... Кто-то что-то посоветует? Плиииииииииииииз!!! заранее благодарен |
я делал так:
при вставке в базу данных заменял все нужные мне символы их комбинации на определённоё мною название в скобках... т.е. в дан случае: запись в БД: DEFINE ("NEWLINE","<BR>"); str_replace ( "\n", "[NL]", $message ); а при получении из БД echo ( str_replace ( "[NL]", NEWLINE, $message ) ); всё пашет :) |
да как вставить я то знаю... у меня проблема в том, что анализатор не находит в полученой строке ни одного \n!!!
в чем может быть прикол? |
ну не знаю..
если тока ЕНТЕР не нажимаешь... а так давай кусок кода, отвечающий за это дело... мож там ошибка.. или сам поищи... у мя нормано находит... |
Код:
<form method="post" action="text.php"> |
вот функция - анализатор синтаксиса:
Код:
function str2htm ($input_str,&$return_str)1. вариант номер один: Код:
Код:
|
пардон за расцветку, не знал :)))
расцветку убрал, а вот глюки с обработкой ХТМЛ тегов присутствуют... пардон :) |
Вложений: 1
короче, с отображением кода тута проблемы... вот файл со всеми ужасами...
|
чё-т ты наворотил
мне кажется легче так: сделать три массива: один с символами, которые следует заменять (пользовательские, а не промежуточные (в скобках)) ($symbolsAr) второй с аналогичнами названиями в скобках($directivesAr) и третий с константами, содержащими код, на который нужно заменить названия в скобках ($codesAr) при передаче в бд: str_replace ( $symbolsAr, $directivesAr, $message ); при получении из бд: str_replace ( $directivesAr, $codesAr, $message ); ток в массивах элементы должны располагаться одинаково, т.е. если у тя в $symbolsAr первый элемент - "\n" то в $directivesAr должно быть первым , напр [BR] а в $codesAr - первый элемент - константа, содержащая <BR> у мя этот вариант работает на ура... |
это все хорошо. но я изменю подход только если мне приведут доказательство того, что мой код действительно НЕ ВИДИТ перенос строк, потому что проблема втом то и том то.... По сути нет разницы каким сопособом обрабатывать - мой со всем прекрасно справляется... кроме \n
кто-нибудь скажет, почему мой код не видит переносов строки??!! это уже скорее принципиальный интерес... |
| Часовой пояс GMT +4, время: 00:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.