htmlspecialchars и теги

  • Автор темы Автор темы Anton63
  • Дата начала Дата начала

Anton63

Новичок
htmlspecialchars и теги

Всем здрасте!
Есть textarea, там можно писать теги <b>, <u>, <i>, <url>. Текст хранится в БД.
Из БД я делаю вывод при помощи htmlhspecialchars. Как сделать что бы эти теги остались действительными???
 
Anton63
такое разделение не имеет смысла. надо или все теги разрешать, или никакие.
 
Не, Wysiwyg не хочу... сделал на бб кодах...
strip_tags удаляет теги, а этого ненадо... надо, что бы все ненужные теги оставались, но недействовали...
Допустим я сделал на бб кодах тег ... Я конечно на выводе его заменить на <b></b>, но тогда и все остальные теги и скрипты пройдут...
 
Anton63, ты в начале делаешь strip_tags, а потом заменяешь BB на теги.

-~{}~ 29.09.09 17:33:

хранишь то ты в том виде, в котором прислал юзер после strip_tags. если хочешь скорость отображения, то храни копию с замененными BB кодами, если скорость не критична, то заменяй при выводе.
 
Anton63
типограф это не визивиг!
типографы обрабатывают текст как раз после визивига... удаляют лишние теги, правильно оформляют кавычки, тире и т.д.
 
Автор оригинала: *****
по-моему, он уже все сделал, и нормально.
Ну... не всё конечно... но сделал так:
Делал на бб кодах... а при выводе пропускаю через htmlspecialchars() и затем заменяю бб коды с помощью preg_replace(). Как то так...
 
PHP:
$str = '<a href=""><div><b>тест</b></div></a>';
$enable = array('b','u','i','a');
echo preg_replace('#<(/|)([^\s>]*)([^>]*)>#se','in_array("$2",$enable) ? "$0" : "&lt;$1$2$3&gt;"',$str);
 
Anton63
отличное решение

SiMM
оно ж ведь от хсс никак? или я ошибаюсь?
 
Автор оригинала: SiMM
PHP:
$str = '<a href=""><div><b>тест</b></div></a>';
$enable = array('b','u','i','a');
echo preg_replace('#<(/|)([^\s>]*)([^>]*)>#se','in_array("$2",$enable) ? "$0" : "&lt;$1$2$3&gt;"',$str);
PHP:
$str = 
'<_ <script type="text/javascript" >>' .
'/*<_ */ ' .
'alert("test");' .
'</script >>';
 
> оно ж ведь от хсс никак?
Это идея, а не готовое решение, и вообще её, как и парсер bb-code, разумно на конечных автоматах делать.
 
> На PHP?
Вам это кажется невероятным? Какая разница, на чём?
 
Сверху