我需要清理textarea字段的表單輸入。PHP表單清理?
開始標記可以允許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和>。結束標記內不允許有其他內容。
所有其他括號將被刪除與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
''...使用DOM解析器! – RobertPitt 2011-03-17 12:48:05