PHP实现过滤各种HTML标签

首先分享一些比较常见的

$str=preg_replace("/<s*imgs+[^>]*?srcs*=s*(‘‘|")(.*?)\1[^>]*?/?s*>/i","", $str); //过滤img标签

$str=preg_replace("/s+/","", $str); //过滤多余回车

$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<!--.*?-->/si","",$str); //注释

$str=preg_replace("/<(!.*?)>/si","",$str); //过滤DOCTYPE

$str=preg_replace("/<(/?html.*?)>/si","",$str); //过滤html标签

$str=preg_replace("/<(/?head.*?)>/si","",$str); //过滤head标签

$str=preg_replace("/<(/?meta.*?)>/si","",$str); //过滤meta标签

$str=preg_replace("/<(/?body.*?)>/si","",$str); //过滤body标签

$str=preg_replace("/<(/?link.*?)>/si","",$str); //过滤link标签

$str=preg_replace("/<(/?form.*?)>/si","",$str); //过滤form标签

$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签

$str=preg_replace("/<(applet.*?)>(.*?)<(/applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(/?applet.*?)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*?)>(.*?)<(/style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(/?style.*?)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*?)>(.*?)<(/title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(/?title.*?)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*?)>(.*?)<(/object.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(/?objec.*?)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*?)>(.*?)<(/noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(/?noframes.*?)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(/?i?frame.*?)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str); //过滤script标签

$str=preg_replace("/<(/?script.*?)>/si","",$str); //过滤script标签

$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签

$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签

$str=preg_replace("/on([a-z]+)s*=/si","On\1=",$str); //过滤script标签

$str=preg_replace("/&#/si","&#",$str); //过滤script标签

更简单些的写法:

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;
}

再来一个:

function clear_html_label($html)
{
$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");
$replace = array ("", "", "1", """, "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(1)");
return preg_replace($search, $replace, $html);
}

以上三种方法均可以实现,不过各有优劣,小伙伴们根据自己的项目需求来选择吧。

转载自:http://www.aspnetjia.com

时间: 2024-08-04 17:07:30

PHP实现过滤各种HTML标签的相关文章

正则过滤html的标签

$('#Text').find('br').remove();//移除br标签 let content = $('#smsText').html().replace(/ /g, ' ').replace(/&/g, '&') .replace(/<\/?[^>]*>/g,'')//过滤html的标签 .replace(/</g, '<').replace(/>/g, '>')

Android Logcat之过滤多个标签

需求说明 在使用android logcat开发中,有时候需要过滤多个标签(tag) ,此时我们就需要用到android logcat的标签过滤工具,进行多标签的过滤 点击Logcat右上角的的绿色的+ 图标 ,出现如下所示的对话框,在对话框中填入相应的过滤标签即可过滤相应的信息 下面对图中红色框中信息做具体说明 1.表示过滤的标签 ,例如  过滤的内容中包含标签1或者标签2   ,那么需要填入的内容是   标签1 | 标签2 ,表示标签1 或者标签2 2.表示过滤的PID的ID号,学过Linu

PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数

XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function is to be a generic function that can be used to parse almost any input and render it XSS safe. For more information on actual XSS attacks, check out h

asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

无论你用什么语言,正则表达式的处理方法都是非常灵活.高效的,尤其是对某些字符串的抓取.过滤方面,更显其优势. 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的执行效率非常高,运行速度相当快.因此我在项目的开发中,通常把正则表达式作为处理问题的首选方法. 正则表达式的运用,在各种语言里都是相通的,也就是说,当你懂得在PHP中使用正则表达式,那么在任何一种语言中也能轻驾就熟. 这里给出两个asp.net实例. 1.asp.net正则表达式提取网址.标题.图片

PHP过滤各种html标签

1.strip_tags(剥去字符串中的 HTML 标签) strip_tags() 函数剥去字符串中的 HTML.XML 以及 PHP 的标签. 2.字符串替换 str_replace(array(" ","&nbsp;","\t","\r\n","\r","\n"),array("","","","&quo

java 使用正则表达式过滤HTML中标签

/** * 去掉文本中的html标签 * * @param inputString * @return */ public static String html2Text(String inputString) { if (StringUtils.isEmpty(inputString)) { return null; } String htmlStr = inputString; String textStr = ""; java.util.regex.Pattern p_scrip

PHP过滤常用的标签

<?php $str=preg_replace("/\s+/", " ", $str); //过滤多余回车 $str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格) $str=preg_replace("/<\!–.*?–>/si","",$str); //注释 $

Java 过滤所有html标签,复制文件到指定位置

public static String filterHtml(String string) { String str = string.replaceAll("<[a-zA-Z]+[1-9]?[^><]*>", "").replaceAll("</[a-zA-Z]+[1-9]?>", ""); return str; } 复制文件到指定位置 public static boolean in

JS 过滤HTML标签,取得纯文本

一.过滤掉所有HTML标签如下: str.innerHTML.replace(/<.*?>/g,"") 二.过滤掉带属性的某一个标签,如<span class='aa'></span>标签: var str = "<p>这里是测试过滤<span class='aa'>span标签的哦</span></p>";str.replace(/<span (.*?)>/gi,&qu