Консультация № 63930
23.11.2006, 21:29
0.00 руб.
0 4 2
Здраствуйте уважаемые эксперты.
Надо организовать сл. скритп. Вообщем есть форма для ввода новостей, данные после ввода обрабатываются stripslashes(), т.е. как пишу <b>Test</b>, он мне так при выборке и выдаёт жирную надпись (Test), но мне надо ввести ещё и html код, который бы так и отоброжался в виде кода, допустим пишу
Код:
<b>Test</b>
, после выборки мне должно выводиться (<b>Test</b>), пытался использовать explode, как только не писал, не чего не выходит. Подскажите как такое сделать, сразу в Бд записывать данные внутри
Код:
применяя htmlspecialchars(), только как? Или записывать в Бд без htmlspecialchars(), только с добавлением слешей, но при выборке как заставить <b>Test</b>, так и отоброзиться - (<b>Test</b>)?
Надеюсь на помощь.

Обсуждение

Неизвестный
24.11.2006, 10:04
общий
это ответ
Здравствуйте, Nook!
echo htmlspecialchars("<B>TEST</B>");
выведет <B>TEST</B> , а бровзер отобразит <B>TEST</B>
Неизвестный
27.11.2006, 09:42
общий
В БД пишите как есть, а при отображении добавляйте htmlspecialchars
Неизвестный
27.11.2006, 13:07
общий
это ответ
Здравствуйте, Nook!
<pre>
Попробуйте так:

$texttosave=preg_replace_callback(‘|(\[code\])(.*?)(\[\/code\])|im‘
,create_function(‘$m‘,‘return htmlspecialchars($m[2]);‘),$source);

Здесь все подстроки $source заключеные в
Код:
обрабатываются htmlspecialchars(), остальной текст остается без изменений, результат $texttosave и сохраняйте в БД(не забудьте addslashes, или mysql_escape_string), при выводе обработки не требуется.
Проверку на корректность текста и безопасность тегов сделайте сами.
Успехов.
</pre>
Неизвестный
28.11.2006, 04:17
общий
Спешу исправиться. Пишу в рабочее время отсюда и ошибки.Вне символьного класса символ точка соответствует любому (в том числе и непечатному, бинарному) символу, КРОМЕ символа перевода строки ‘\n‘, поэтому в рег. выражении надо использовать модификатор s (PCRE_DOTALL) $texttoout=preg_replace_callback(‘|(\[code\])(.*?)(\[\/code\])|ims‘,create_function(‘$m‘,‘return htmlspecialchars($m[2]);‘),$source);И, наверное, удобнее будет хранить техт как есть, чтобы оставить возможность редактирования, а обрабатывать
Код:
при выводе на страницу.
Форма ответа