php 过滤html标签的函数代码

本文章提供四款过滤html标签的函数代码,方法一最简单的利用了php自带函数strip_tags来过滤所有的html标签,方法二利用了正则表达式来过滤html标签,方法三是清除HTML标签的用户自定义函数,根据ascii编码值来判断是否为字母再过滤.

最直接过滤html方法,代码如下:

strip_tags();

方法二利用正则过滤,代码如下:

  1. function _filter( $string ) {
  2. return str_replace(array(" "," "," ",' '),array('<br />','<br />','<br />',' &nbsp;'),strip_tags($string,'<br><p><img>'));
  3. }

正则二,代码如下:preg_replace('/(<br>){1,}/is','<br>', $str);

正则三,代码如下:

  1. function delhtml($str){ //清除html标签
  2. $st=-1; //开始
  3. $et=-1; //结束
  4. $stmp=array();
  5. $stmp[]="&nbsp;";
  6. $len=strlen($str);
  7. for($i=0;$i<$len;$i++){
  8. $ss=substr($str,$i,1);
  9. if(ord($ss)==60){ //ord("<")==60
  10. $st=$i;
  11. }
  12. if(ord($ss)==62){ //ord(">")==62
  13. $et=$i;
  14. if($st!=-1){
  15. $stmp[]=substr($str,$st,$et-$st+1);
  16. }
  17. }
  18. }
  19. $str=str_replace($stmp,"",$str);
  20. return $str;
  21. }
  22. //
  23. $str='<div class="newscon" ><span id=contextid>
  24. <p>  www.phpfensi.com<nr /> <br>
  25. ';
  26. $reg = '/(</?p>|<brs*/?>)|<.+?>/i';
  27. echo preg_replace($reg,'$1',$str);