zoukankan      html  css  js  c++  java
  • 编码-截取中文-去除HTML字符

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <?php
    
    header('Content-Type: text/html; charset=utf-8');
    
    function content_replace($show_content){
         $search = array(
            "'<script[^>]*?>.*?</script>'si", //过滤SCRIPT标记
            "'<iframe[^>]*?>.*?</iframe>'si", //过滤IFRAME标记
            "'<style[^>]*?>.*?</style>'si", //过滤STYLE标记
            "'<[/!]*span[^<>]*?>'si", //过滤SPAN标记
            "'<[/!]*strong[^<>]*?>'si", 
            "'<[/!]*span[^<]*?>'si", //过滤SPAN标记
            "'<[/!]*br[^<>]*?>'si", //过滤br标记
            "'<[/!]*img[^<>]*?>'si", //过滤img标记
            "'<[/!]*input[^<>]*?>'si", //过滤input标记
            "'<[/!]*font[^<>]*?>'si", //过滤FONT标记
            "'<[/!]*textarea[^<>]*?>'si", //过滤textarea标记
            "'<[/!]*form[^<>]*?>'si", //过滤form标记
            "'<[/!]*a[^<>]*?>'si", //过滤A标记,如果要过滤链接中的字,必须在过滤规则中写下。
            "'<[/!]*div[^<>]*?>'si", //过滤DIV标记
            "'<[/!]*tbody[^<>]*?>'si", //过滤TABLE标记
            "'<[/!]*table[^<>]*?>'si", //过滤TABLE标记
            "'<[/!]*tr[^<>]*?>'si", //过滤TABLE标记
            "'<[/!]*td[^<>]*?>'si", //过滤TABLE标记
            "'<[/!]*p[^<>]*?>'si", //过滤P标记
            "'<[/!]*o:p[^<>]*?>'si", //过滤o:p标记
            "'<[?!]*xml:[^<>]*?>'si", //过滤xml:标记
            "'<[/!]*select[^<>]*?>'si", //过滤select标记
            "'<[/!]*option[^<>]*?>'si", //过滤option标记
            "'<[/!]*v:[^<>]*?>'si", //过滤v:标记
            "'<[/!]*o:[^<>]*?>'si", //过滤o:标记
            "'target=([^s>]*)|method=([^s>]*)|action=([^s>]*)|rows=([^s>]*)|cols=([^s>]*)|type=([^s>]*)|href=([^s>]*)|src=([^s>]*)|id=([^s>]*)|class=([^s>]*)|name=([^s>]*)|align=([^s>]*)|cellpadding=([^s>]*)|cellspacing=([^s>]*)|border=([^s>]*)|bordercolor=([^s>]*)|background=([^s>]*)|bgcolor=([^s>]*)'si",
            "'&#(d+);'e",
        );
        
        $replace = array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "","", "", "", "", "chr(\1)");
        $show_content = preg_replace($search, $replace, $show_content);
        $show_content = preg_replace("/style=['"]*([^'"]*)['"]*/is", "", $show_content);
        $show_content = str_replace("
    ", "", $show_content); //去除HTML中的换行符&nbsp;
        $show_content = str_replace("<span", "", $show_content); //去除HTML中的换行符&nbsp;
        $show_content = str_replace("&nbsp;", "", $show_content); //去除HTML中的换行符
        $show_content = str_replace(" ", "", $show_content); //去除HTML中的换行符
        return $show_content;    
    }
    
    
    //中文字符截取函数
    function cnsubstr($string, $sublen ,$a=0){
        if ($string == ''){
            return false;
        }
        $string = changeYinhaoCom($string,'out');
        $sum = 0;
        for ($i = 0 ; $i < strlen($string) ; $i++){
            if(ord($string{$i}) > 127) {
                $s .= $string{$i} . $string{++$i} . $string{++$i};
                $sum++;
                continue;
            } else {
                $s .= $string{$i};
                $sum++;
                continue;
            }
        }
        if($sublen >= $sum) {
            return $string;
        }
        $s = "";
        $index = 0;
        for($i = 0; $i < $sublen; $i++) {
            if(ord($string{$index}) > 127) {
                $s .= $string{$index} . $string{++$index} . $string{++$index};
                $index++;
                continue;
            } else {
                $s .= $string{$index};
                $index++;
                continue;
            }
        }
        if($a===0){
            $s.="...";
        }else{
            $s.=$a;
        }
        return $s;
    }
    function changeYinhaoCom($content , $flag){
        if($flag=="in"){
            $content  = str_replace(""","&quot;",$content);
            $content  = str_replace("'","&#39;",$content);
        }
        if($flag=="out"){
            $content  = str_replace("&quot;",""",$content);
            $content  = str_replace("&#39;","'",$content);
        }
        return $content;
    }
    
    
    
    //调用方法
    $str = '这是一段很长的字符串我要把它截取一部分';
    echo cnsubstr(content_replace($str),5);
    echo $res;
  • 相关阅读:
    Apache Spark源码走读之4 -- DStream实时流数据处理
    Apache Spark源码走读之3 -- Task运行期之函数调用关系分析
    Apache Spark源码走读之2 -- Job的提交与运行
    Apache Spark源码走读之1 -- Spark论文阅读笔记
    Spark
    (转)互联网广告综述之点击率特征工程
    Java排序算法之冒泡排序
    java枚举
    第二课、数据的艺术---------------------狄泰软件学院
    第一课、进阶高手的大门--------------------狄泰软件学院
  • 原文地址:https://www.cnblogs.com/rxbook/p/6008922.html
Copyright © 2011-2022 走看看