|
|
|
| Здравствуйте.
Подскажите, пожалуйста, как правильно обработать переменную с текстом, чтобы соблюдались правила безопасности, но можно было вводить некоторые теги - конкретно:
<a> <b> <i> <p> <br>
без использования [b] [i] Как это сделать? | |
|
|
|
|
|
|
|
для: Jaroslav
(18.05.2009 в 09:39)
| | С тегами возможно вот такое извращение:
<?
function html_chars($tag)
{
$arr = array(
'<i>',
'</i>',
'<b>',
'</b>'
);
if(in_array($tag[0],$arr))
return $tag[0];
else
return htmlspecialchars($tag[0]);
}
$text = '<b>жирный</b><s>просто текст</s>';
$text = preg_replace_callback("#<([^>]+?)>#","html_chars",$text);
echo $text;
|
а что касаемо ссылок, то не стоит этого делать. Или как минимум нужно обрезать GET параметры. | |
|
|
|
|
|
|
|
для: Николай2357
(18.05.2009 в 11:16)
| | спасибо! | |
|
|
|
|
|
|
|
для: Jaroslav
(18.05.2009 в 11:31)
| | Эта функция не будет обрабатывать кавычки и апострофы. Вообще слишком много возни... А чем псевдотеги не устраивают? | |
|
|
|
|
|
|
|
для: Николай2357
(18.05.2009 в 11:16)
| | А не лучше ли для данного случая просто использовать strip_tags?
string strip_tags ( string $str [, string $allowable_tags ] )
|
<?php
$text = '<b>жирный</b><s>просто текст</s>';
echo strip_tags ( $text, '<b><i>');
?>
|
| |
|
|
|
|
|
|
|
для: sd607
(18.05.2009 в 13:12)
| | Ну она же просто удалит теги, а нужно их отобразить, как я понял. | |
|
|
|