当前位置: 首页 > 编程笔记 >

php过滤HTML标签、属性等正则表达式汇总

仲孙夕
2023-03-14
本文向大家介绍php过滤HTML标签、属性等正则表达式汇总,包括了php过滤HTML标签、属性等正则表达式汇总的使用技巧和注意事项,需要的朋友参考一下
$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标签,如javAsCript:alert( 

清除空格,换行

function DeleteHtml($str)
{
$str = trim($str);
$str = strip_tags($str,"");
$str = ereg_replace("\t","",$str);
$str = ereg_replace("\r\n","",$str);
$str = ereg_replace("\r","",$str);
$str = ereg_replace("\n","",$str);
$str = ereg_replace(" "," ",$str);
return trim($str);
}

过滤HTML属性

1,过滤所有html标签的正则表达式:

 

</?[^>]+>

 

//过滤所有html标签的属性的正则表达式:

 

$html = preg_replace("/<([a-zA-Z]+)[^>]*>/","<\\1>",$html);


3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):

</?[^pP/>]+>


4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):

</?[aApPbB][^>]*>


5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):

\s(?!alt)[a-zA-Z]+=[^\s]*


6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):

(\s)alt=[^\s]*

PS:关于正则,这里再为大家推荐2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

 类似资料:
  • 问题内容: 我正在尝试使用匹配其id属性的正则表达式过滤html表。我究竟做错了什么?我正在尝试实现的代码: 我得到的错误:preg_match期望第二个参数是一个字符串,给定数组。 问题答案: 根据DOM(具有命名空间等),属性仍然是一个复杂的元素。采用: 现在,我们需要一个布尔值返回,所以: 顺便说一句:对于更复杂的问题,您当然可以偷偷检查一下这是怎么回事: 很遗憾,我们没有可用的XPATH

  • 问题内容: 我有这个HTML输入: 我想使用正则表达式删除HTML标记,以便输出为: 谁能建议使用正则表达式执行此操作? 问题答案: 您可以使用称为Jericho Html解析器的HTML解析器。 您可以从这里下载-http://jericho.htmlparser.net/docs/index.html Jericho HTML Parser是一个Java库,允许对HTML文档的各个部分(包括服

  • 问题内容: 我在html页面上制作了preg_replace。我的模式旨在为html中的某些单词添加周围的标记。但是,有时我的正则表达式会修改html标签。例如,当我尝试替换此文本时: 这样读,我的正则表达式也锚标记的alt属性取代亚萨尔。当前我正在使用的外观如下: 如何制作正则表达式,使其与html标记内的任何内容都不匹配? 问题答案: 您可以为此使用断言,因为您只需要确保搜索到的单词出现在或之

  • 问题内容: 使用PHP,如何隔离$ foo的src属性的内容?我寻找的最终结果只会给我“ http://example.com/img/image.jpg ” 问题答案: 如果您不想使用正则表达式(或任何非标准的PHP组件),则使用内置的DOMDocument类的合理解决方案如下:

  • 问题内容: 我正在寻找一个正则表达式,可以从Java中的HTML片段中获取src(不区分大小写)标签。 问题答案: 一种可能性: 是可能的(如果不区分大小写地匹配)。这有点混乱,故意忽略了不使用引号的情况。要表示它而不必担心字符串转义: 这符合: 一个或多个不是的字符(即可能的其他属性) 可选空格 可选空格 或的起始定界符 图片来源 (可能不包含单引号或双引号) 结束定界符 尽管表达式可以在此处停

  • 问题内容: 我正在尝试提取锚标记()的属性。到目前为止,我有这个表达: 适用于像 和(单引号) 但不适用于不带引号的字符串: 如何修改我的正则表达式,使其与不带引号的属性一起使用?还是有更好的方法来做到这一点? 更新: 谢谢您到目前为止的所有好评和建议。 我没有提到一件事:很遗憾,我必须修补/修改不是由我编写的代码。而且没有时间/金钱从头开始重写这些东西。 问题答案: 如果你有一个像 此正则表达式