我需要清理textarea字段的表单输入。
开头标签可以允许b,strong,i,em,u,br,span,a,p,ul,ol,li - 它也可以有style =“”。但删除所有其他:class =“”,id =“”,javascript等。
结束标记只能是</
,而b,strong,i,em,u,br,span,a,p,ul,ol,li和&gt;中的一个。结束标记内不允许任何其他内容。
所有其他括号将使用PHP strip_tags删除。
不确定正则表达式应该是什么样的 - 任何帮助?
像...一样的东西。
$input= strip_tags($input, "<b><strong><i><em><u><br><span><a><p><ul><ol><li>");
$input= input_sanitize($input);
echo $input;
function input_sanitize($value) {
// first, sanitize the opening tags
$value = preg_replace(
"/".
"<(b|strong|i|em|u|br|span|a|p|ul|ol|li)".
"(.*?)".
"(((style\=('|\")(.+?)('|\"))*?)(.*?)((href\=('|\")(.+?)('|\"))*?))".
"(.*?)>/im",
"<$1 $3 $5>",
$value);
// second, sanitize the closing tags
$value = preg_replace(
"/<\/(.*?)(b|strong|i|em|u|br|span|a|p|ul|ol|li)(.*?)>/im"
"</$2>",
$value);
return $value;
}
任何擅长正则表达式的人? :d