我试图创建一个删除任何潜在脚本标签的功能,但不会删除其他标签,如p,li,ol,span,h1,...
这是我到目前为止所拥有的。我也写了<和>作为编码的字符"%3C"和"%3E"以及HTML名称和编号。当你看到#34; ^<(/)?script> $"时,试图为第一个做正则表达式。但它不起作用:D
function smartFilter($string) {
$string = strtolower($string);
if (strpos($string, "<script>") !== FALSE || strpos($string, "<script>") !== FALSE || strpos($string, "<script>") !== FALSE || strpos($string, "%3Cscript%3E") !== FALSE) {
$unallowed = array("^<(\/)?script>$", "<script>", "</script>", "%3Cscript%3E", "%3C/script%3E", "<script>", "<script>");
return preg_replace($unallowed, "", $string);
} else {
return $string;
}
}
答案 0 :(得分:0)
为什么不从php使用strip_tags
?链接here。
答案 1 :(得分:0)
这完成了我要求的所有工作:D
function smartFilter($string) {
return strip_tags($string, "<p><li><ol><ul><h1><h2><h3><h4><h5><span><b><u><i>");
}