• 中文截取字符串方法(指定长度之后的中文用逗号代替)


    <?php
    function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
    {
       if($code == 'UTF-8')
       {
           $pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
           preg_match_all($pa, $string, $t_string);

           if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";
           return join('', array_slice($t_string[0], $start, $sublen));
       }
       else
       {
           $start = $start*2;
           $sublen = $sublen*2;
           $strlen = strlen($string);
           $tmpstr = '';

           for($i=0; $i< $strlen; $i++)
           {
               if($i>=$start && $i< ($start+$sublen))
               {
                   if(ord(substr($string, $i, 1))>129)
                   {
                       $tmpstr.= substr($string, $i, 2);
                   }
                   else
                   {
                       $tmpstr.= substr($string, $i, 1);
                   }
               }
               if(ord(substr($string, $i, 1))>129) $i++;
           }
           if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";
           return $tmpstr;
       }
    }

    $str = "自乔布斯去世之后,外界一致认为是因为他的一如既往的固执,而错过了最佳治疗时间";
    $aa= cut_str($str, 36, 0, 'gb2312');
    print_r($aa);
    ?>

  • 相关阅读:
    v-for列表指令
    v-show 指令
    v-else-if 条件语句
    v-else条件语句
    v-if 条件语句
    2020 WPF界面开发新风向:DevExpress WPF支持.NET Core设计时
    轻松进行WPF界面开发,DevExpress WPF Gantt
    Winforms界面使用技巧:Kanban Board增强功能
    2020 WPF界面开发新风向:DevExpress WPF支持.NET Core设计时
    轻松进行WPF界面开发,Data Grid & TreeList
  • 原文地址:https://www.cnblogs.com/myphper/p/3227221.html
Copyright © 2020-2023  润新知