php删除html5废弃的标签属性

html5已经废弃了一些标签属性,在一些编辑器中有大概不能直接删除,我写了一个只管去掉非html5属性标签php函数。代码附上:

<?php /** * php删除html5废弃的标签属性 by enenba * 2012-6-1 * 如:align valign bgcolor height width hspace vspace * body中link、vlink、alink、text属性 header中profile、 a中target、 img和iframe元素的longdesc * * @param str $html html源码 * @return str 删除儿女码 */ function del_no_html5_attribute($html) { $search = array ( '/(<[^<>]+?)\s?align="[^<>]*?"\s?([^<>]*?>)/is', '/(<[^<>]+?)\s?valign="[^<>]*?"\s?([^<>]*?>)/is', '/(<[^<>]+?)\s?bgcolor="[^<>]*?"\s?([^<>]*?>)/is', '/(<[^<>]+?)\s?height="[^<>]*?"\s?([^<>]*?>)/is', '/(<[^<>]+?)\s?width="[^<>]*?"\s?([^<>]*?>)/is', '/(<[^<>]+?)\s?hspace="[^<>]*?"\s?([^<>]*?>)/is', '/(<[^<>]+?)\s?vspace="[^<>]*?"\s?([^<>]*?>)/is', '/(<body[^<>]*?)\s?link="[^<>]*?"\s?([^<>]*?>)/is', '/(<body[^<>]*?)\s?vlink="[^<>]*?"\s?([^<>]*?>)/is', '/(<body[^<>]*?)\s?alink="[^<>]*?"\s?([^<>]*?>)/is', '/(<body[^<>]*?)\s?text="[^<>]*?"\s?([^<>]*?>)/is', '/(<header[^<>]*?)\s?profile="[^<>]*?"\s?([^<>]*?>)/is', '/(<a[^<>]*?)\s?target="[^<>]*?"\s?([^<>]*?>)/is', '/(<img[^<>]*?)\s?longdesc="[^<>]*?"\s?([^<>]*?>)/is', '/(<iframe[^<>]*?)\s?longdesc="[^<>]*?"\s?([^<>]*?>)/is', ); return preg_replace($search, '$1$2', $html); } $html = ' <body link="123"> <div hspace="2" vspace="1">内容1</div><table bgcolor="#1231231"></table> <a href="http://enenba.com/test.php" target="_blank"></a> </body> <div></div> '; highlight_string(del_no_html5_attribute($html)); /* <body> <div>内容1</div><table></table> <a href="http://enenba.com/test.php"></a> </body> <div></div> */ ?>

end...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7848.html