php清空字符串中的HTML标签

要过滤字符串中所有的html标签有两种方法一种是我们自己写一个函数,用正则过滤,一个是用php自带函数strip_tags.

  1. function clear_html_label($html)
  2. {//开源代码phpfensi.com
  3. $search = array ("'<script[^>]*?>.*?</script>'si", "'<[/!]*?[^<>]*?>'si", "'([rn])[s]+'", "'&(quot|#34);'i", "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(d+);'e");
  4. $replace = array ("", "", "", """, "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr()");
  5. return preg_replace($search, $replace, $html);
  6. }

实例应用,代码如下:

  1. $string ='aaa<br /> <script>fdsafsa';
  2. echo clear_html_label($string);//aaa fdsafsa

利用php自带函数strip_tags();

echo strip_tags($string);//aaa fdsafsa

总结:上面二个函数得出的结果完全相同,一个是用户自定义的过滤所有html函数,一个是php内置函数,但在效率上来说php的strip_tags()函数,肯定要高很多,至少为什么我就不说多了.