正则表达式匹配html 过滤非法字符

匹配一个html标签,匹配table如下:

<table.*?>[ss]*</table>

<table.*?>[ss]*?</table>

以上两个表达式,一个加了"?"和一个却不加"?",那么这有什么区别呢?
我们知道"?"在正则表达式里是一个通配符:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。

在这里,通过测试,我们得出这样的结论:在不加"?"的情况下,在匹配下面一段内容的时候:

<table>这是第一个table</table>
我不是table里的内容
<table>这是第二个table</table>
我也不是table里的内容
<table>这是第三个table</table>

<?

$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("/网页特效/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('aabb)

?>

时间: 2024-09-19 21:40:00

正则表达式匹配html 过滤非法字符的相关文章

javascript 过滤非法字符验证程序

这是一款用来在客户端过滤一些非法字符,可以防止一些不必要提供,更显得用户友好提示哦 javascript教程 过滤非法字符验证程序 <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>javascript 过滤非法字符验证程序</title> <script language="java

php批量过滤非法字符

php教程 批量过滤非法字符 function testAddslashes($array) {  if(!get_magic_quotes_gpc()) {   if(is_array($array)) {    foreach($array as $key => $val) {     $array[$key] = testAddslashes($val);    }   } else {       $array = addslashes($array);   }   $array=str

php 批量过滤非法字符

function testAddslashes($array) {  if(!get_magic_quotes_gpc()) {   if(is_array($array)) {    foreach($array as $key => $val) {     $array[$key] = testAddslashes($val);    }   } else {       $array = addslashes($array);   }   $array=str_replace("&a

php中过滤非法字符的具体实现_php实例

复制代码 代码如下: <?php class sqlsafe { private $getfilter = "'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(T

php 过滤非法字符 与过滤html js css a等html标签代码

<form name="form1" method="post" action="">   <textarea name="content" cols="50" rows="10"></textarea>   内容  <input type="submit" name="Submit" value=&quo

在asp中过滤非法字符的函数

<%   Function cutbadchar(str)   badstr="不|文|明|字|符|列|表|格|式"   '此处填写不文明的词语,用|分开  badword=split(badstr,"|")   For i=0 to Ubound(badword)   If instr(str,badword(i)) > 0 then   str=Replace(str,badword(i),"***")   End If   Ne

asp 过滤非法字符函数_应用技巧

<% Function cutbadchar(str) badstr="不|文|明|字|符|列|表|格|式" badword=split(badstr,"|") For i=0 to Ubound(badword) If instr(str,badword(i)) > 0 then str=Replace(str,badword(i),"***") End If Next cutbadchar=str End Function Res

php过滤非法字符函数

$str ="<a >fdafsa''&#x</a>"; echo htmlspecialchars( $str ); /* & (和) 转成 & " (双引号) 转成 " < (小于) 转成 < > (大于) 转成 > 此函式只转换上面的特殊字元,并不会全部转换成 html 所定的 ascii 转换 */ //输出 html_entity_decode($str); /* 于html_enti

asp 过滤非法字符函数

<% Function cutbadchar(str) badstr="不|文|明|字|符|列|表|格|式" badword=split(badstr,"|") For i=0 to Ubound(badword) If instr(str,badword(i)) > 0 then str=Replace(str,badword(i),"***") End If Next cutbadchar=str End Function Res