php 过滤html标签的函数代码
本文章提供四款过滤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" ><span id=contextid>
- <p> www.phpfensi.com<nr /> <br>
- ';
- $reg = '/(</?p>|<brs*/?>)|<.+?>/i';
- echo preg_replace($reg,'$1',$str);