首页 > 开发 > PHP > 正文

php过滤html标签多种方法

2024-05-04 21:58:53
字体:大 中 小
来源:转载
供稿:网友

方法一,代码如下:

echo strip_tags("hello <b>world!</b>"); 

strip_tags --- 去除字串中的html和php标签

语法:string strip_tags (string str [, string allowable_tags])

说明:此函式试着从给予的字串中去除所有html和php标签,如果是不完整或是假的标签时则会有错误,它和fgetss( )使用相同的方法去除标签,代码如下:

$reg = '/(</?p>|<brs*/?>)|<.+?>/i';echo preg_replace($reg,'$1',$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;//开源代码Vevb.com 
  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. } 

过滤方法三,代码如下:

  1. function clear_html_label($html)  
  2. {  
  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 ("", "", "1", """, "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(1)"); 
  5.  
  6. return preg_replace($search, $replace, $html);  
  7. } 
  8.  
  9. //实例应用 
  10.  
  11. $string ='aaa<br /> <script>fdsafsa';  
  12. echo clear_html_label($string);//aaa fdsafsa 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表