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

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

strip_tags();

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

function _filter( $string ) {

return str_replace(array(" "," "," ",' '),array('<br />','<br />','<br />',' &nbsp;'),strip_tags($string,'<br><p><img>'));

}

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

正则三,代码如下:

function delhtml($str){ //清除html标签

$st=-1; //开始

$et=-1; //结束

$stmp=array();

$stmp[]="&nbsp;";

$len=strlen($str);

for($i=0;$i<$len;$i++){

$ss=substr($str,$i,1);

if(ord($ss)==60){ //ord("<")==60

$st=$i;

}

if(ord($ss)==62){ //ord(">")==62

$et=$i;

if($st!=-1){

$stmp[]=substr($str,$st,$et-$st+1);

}

}

}

$str=str_replace($stmp,"",$str);

return $str;

}

//

$str='<div class="newscon" id="idnewsdtail"><span id=contextid>

<p>  www.phpfensi.com<nr /> <br>

';

$reg = '/(</?p>|<brs*/?>)|<.+?>/i';

echo preg_replace($reg,'$1',$str);


09-16 07:54