function validCleanHtml( $unclosedString )
{
preg_match_all( "/<([^\/]\w*)>/", $closedString = $unclosedString, $tags );
for ( $i = count( $tags[1] ) - 1; $i >= 0; $i-- )
{
$tag = $tags[1][$i];
if ( substr_count( $closedString, "</$tag>" ) < substr_count( $closedString, "<$tag>" ) )
$closedString .= "</$tag>";
}
$validTags = "<em><strong>";
$validClosedString = strip_tags( $closedString, $validTags );
return $validClosedString;
}
好吧我想要的是启用2个html,em和强大,这是否只是从xss安全?如果不是我们如何保护它?
答案 0 :(得分:12)
您是否查看了htmlpurifier等现有解决方案?你真的不想编写自己的HTML解析器 - 当然也不想编写正则表达式。
答案 1 :(得分:4)
我认为strip_tags
有答案。
您可以删除不需要的字段,而不是启用某些字段。即:link
,style
,script
,iframe
,frame