Вот так вроде работает всё без js
static function htmlspecialchars ($text = '',$tags = array('b','strong','code','div','ul','li','i','u','s','br','a','img','h1','h2','h3','h4','h5','h6'),$attr = true) {
$search = array();
$replace = array();
if($attr) {
foreach ($tags as $key => $tag) {
$search1[] = '|<([/]*)'.$tag.'([ a-zA-Zа-яА-Я0-9.=_\-#;/"]*)>|ui';
$replace1[] = '◄$1'.$tag.'$2►';
$search2[] = '|◄([/]*)'.$tag.'([ a-zA-Zа-яА-Я0-9.=_\-#;/"]*)►|ui';
$replace2[] = '<$1'.$tag.'$2>';
}
} else {
}
return preg_replace($search2, $replace2, htmlspecialchars(
preg_replace($search1, $replace1, $text)
,ENT_NOQUOTES
));
}
$text = '
<code class="php" onclick="javascript">
<b>cod</b>
</code>
<img src="javascript:"/>
<a href="/" title="ссылка"><i>ссылка</i></a>';
echo text::htmlspecialchars($text,array('code','b','a','img','i'));
ща подумаю как атрибуты включать только те что можно, чтоб допустим onclick не юзали
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2