当前位置:编程学习 > php >>

php过滤所有html标签的几种方法

php教程过滤所有html标签的几种方法
//用正则过滤html标签

$html_body ="<a href='#'>www.zzzyk.com</a>";
preg_replace("/(</?)(w+)([^>]*>)/e",
             "'\1'.strtoupper('\2').'\3'",
             $html_body);


   
//用php教程自带函数strip_tags

echo strip_tags("hello <b>world!www.zzzyk.com</b>");

//用户自定义

function filterhtml($str) {
        $str=eregi_replace("</*[^<>]*>", '', $str);
        $str=str_replace(" ", '', $str);
        $str=str_replace("n", '', $str);
        $str=str_replace("t", '', $str);
        $str=str_replace("::", ':', $str);
        $str=str_replace(" ", '', $str);
   //$str=str_replace(" ", '', $str);
        return $str;
}

//其它可能对你有用的方法

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

</?[^>]+>

2,过滤所有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]*

 

补充:Php教程,Php常用代码 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,