本文章提供四款过滤html标签的函数代码,方法一最简单的利用了php自带函数strip_tags来过滤所有的html标签,方法二利用了正则表达式来过滤html标签,方法三是清除HTML标签的用户自定义函数,根据ascii编码值来判断是否为字母再过滤.
最直接过滤html方法,代码如下:
strip_tags();
方法二利用正则过滤,代码如下:
function _filter( $string ) {
return str_replace(array(" "," "," ",' '),array('<br />','<br />','<br />',' '),strip_tags($string,'<br><p><img>'));
}
正则二,代码如下:preg_replace('/(<br>){1,}/is','<br>', $str);
正则三,代码如下:
function delhtml($str){ //清除html标签
$st=-1; //开始
$et=-1; //结束
$stmp=array();
$stmp[]=" ";
$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);