PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > PHP教程 > 正文

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

    作者:admin来源:B5教程网浏览:时间:2020-09-30 00:07:50我要评论
    导读:php教程过滤所有html标签的几种方法 //用正则过滤html标签$html_body ="www.bcty365.com";preg_replace("/(</?)(w+)([^>]*>)/e","&#39;...
    php教程过滤所有html标签的几种方法
        //用正则过滤html标签
    $html_body ="www.bcty365.com";
    preg_replace("/(</?)(w+)([^>]*>)/e",
    "'\1'.strtoupper('\2').'\3'",
    $html_body);
     
    //用php教程自带函数strip_tags
    echo strip_tags("hello world!_前端技术");
    //用户自定义
    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标签的正则表达式的排除式(比如排除
    ,即不过滤
    ):
    </?[^pp/>]+>
    4,过滤部分html标签的正则表达式的枚举式(比如需要过滤
    等):
    </?[aappbb][^>]*>
    5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):
    s(?!alt)[a-za-z]+=[^s]*
    6,过滤部分html标签的属性的正则表达式的枚举式(比如alt属性):
    (s)alt=[^s]*
    $tmp = preg_replace('/[一-�]/u','<@>','你好我是谁?123abc');
    /u是UTF-8
    程序一:PHP截取UTF-8字符串,解决半字符问题
    /******************************************************************
    * PHP截取UTF-8字符串,解决半字符问题。
    * 英文、数字(半角)为1字节(8位),中文(全角)为3字节
    * @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串
    * @param $str 源字符串
    * $len 左边的子串的长度
     
    function utf_substr($str,$len){
    for($i=0;$i<$len;$i++){
       $temp_str=substr($str,0,1);
       if(ord($temp_str) > 127){
        $i++;
        if($i<$len){
         $new_str[]=substr($str,0,3);
         $str=substr($str,3);
        }
       }else{
        $new_str[]=substr($str,0,1);
       $str=substr($str,1);
       }
    }
    return join($new_str);
    }
    例子一:
    $str = utf_substr('你好',4);
    echo $str;
    程序二:截取utf-8字符串函数
    function cut_str($sourcestr,$cutlength){
    $returnstr='';
    $i=0;
    $n=0;
    $str_length=strlen($sourcestr);//字符串的字节数
    while (($n<$cutlength) and ($i<=$str_length)){
       $temp_str=substr($sourcestr,$i,1);
       $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
       if ($ascnum>=224){ //如果ASCII位高与224,
        $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
        $i=$i+3; //实际Byte计为3
        $n++; //字串长度计1
       }elseif ($ascnum>=192){ //如果ASCII位高与192,
        $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
        $i=$i+2; //实际Byte计为2
        $n++; //字串长度计1
       }elseif ($ascnum>=65 && $ascnum<=90){ //如果是大写字母,
        $returnstr=$returnstr.substr($sourcestr,$i,1);
        $i=$i+1; //实际的Byte数仍计1个
        $n++; //但考虑整体美观,大写字母计成一个高位字符
       }else{ //其他情况下,包括小写字母和半角标点符号,
        $returnstr=$returnstr.substr($sourcestr,$i,1);
        $i=$i+1; //实际的Byte数计1个
        $n=$n+0.5; //小写字母和半角标点等与半个高位字符宽...
       }
    }
    if ($str_length>$cutlength){
       $returnstr = $returnstr . "...";//超过长度时在尾处加上省略号
    }
    return $returnstr;
    }
    $str = '你好!我好';
    $str = cut_str($str,3);
    echo $str;
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-10-496-1.html
    相关热词搜索: php教程 过滤 html标签