PHP正規表現フィルタhtmlタグ属性(DEMO)
1618 ワード
フィルタhtmlタグはphpに内蔵された関数を持つことができますが、フィルタリングがきれいすぎて、指定したhtmlタグを正規でフィルタリングする例を整理しました.具体的には以下のようにします.
収集時には、imgタグがsrc属性以外のすべての属性、例えばtitile altの削除などの属性や足のonclick属性などをフィルタリングするなど、余分なラベル属性をフィルタリングする必要がある場合があります.
たとえば
src以外のすべてのプロパティをフィルタします.
上記のインスタンスコードは、src属性を除くすべてのラベル属性をフィルタリングするものである.
フィルタ設定altとsrc以外のすべてのプロパティをフィルタ
コードは次のとおりです.
すべてのhtmlラベルのプロパティをフィルタする正規表現:
alt属性の正規表現のみをフィルタします.
すべてのhtmlラベルのプロパティをフィルタする正規表現:
収集時には、imgタグがsrc属性以外のすべての属性、例えばtitile altの削除などの属性や足のonclick属性などをフィルタリングするなど、余分なラベル属性をフィルタリングする必要がある場合があります.
たとえば
src以外のすべてのプロパティをフィルタします.
$str= preg_replace('/\s(?!src)[a-zA-Z]+=[\'\"]{1}[^\'\"]+[\'\"]{1}/iu',' $str);
上記のインスタンスコードは、src属性を除くすべてのラベル属性をフィルタリングするものである.
フィルタ設定altとsrc以外のすべてのプロパティをフィルタ
コードは次のとおりです.
$str = preg_replace('/\s(?!(src|alt))[a-zA-Z]+=[^\s]*/iu',' ', $str);
すべてのhtmlラベルのプロパティをフィルタする正規表現:
$str = preg_replace("/]*>/i","",$str );
alt属性の正規表現のみをフィルタします.
(\s)alt=[^\s]*
すべてのhtmlラベルのプロパティをフィルタする正規表現:
$search = array ("']*?>.*? 'si", // javascript
"']*?>'si", // HTML
"'([\r
])[\s]+'", //
"'&(quot|#34);'i", // HTML
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i"
); // PHP
$replace = array ("","","\\1","\"","&",""," ");
$html = preg_replace($search, $replace, $html);