zoukankan      html  css  js  c++  java
  • 自定义一个函数截取中文字符串

    /**
    * 截取中文字符串
    * @param unknown $str 要截取的字符串
    * @param unknown $encode 字符编码
    * @param unknown $start 开始位置
    * @param string $len 要截取的长度
    * @return string
    */
    function getStr($str,$encode,$start,$len=null)
    {
      switch ($encode)
      {
        case 'utf8':$num = 3;break;
        case 'gbk':$num = 2;break;
        case 'gb2312':$num = 2;break;
        default:
          echo '编码格式出错';exit;
      }
      $m=0;//开始截取位置
      for($a=0;$a<$start;$a++)
      {
        if(ord(substr($str, $m,1))>0xa0)//0xa0中文开始的值
        {
          $m+=$num;
        }else
        {
          $m++;
        }
      }
      $length = strlen($str);
      $n=1;//截取次数(截取多长,就截取几次)
      for ($i=$m;$i<$length;)
      {
        if(ord(substr($str, $i,1))>0xa0)
        {
          $sstr .= substr($str, $i ,$num);
          $i+=$num;
        }
        else
        {
          $sstr .= substr($str, $i ,1);
          $i++;
        }
        $n++;
        if ($len!==null){
          if($n>$len)break;//如果超出长度,跳出循环
        }
      }
      return $sstr;
    }

  • 相关阅读:
    JVM 常用参数设置(针对 G1GC)
    Java 字符串常量池 及 intern 方法的使用
    JDK 1.8 Metaspace 详解
    JDK 1.8 MetaSpace(元空间)介绍及调优
    Git 统计代码行数
    王永庆传-读书笔记2
    王永庆传-读书笔记1
    董明珠:女人真想干点事,谁也拦不住
    esxi5.5安装nvme驱动
    nvme ssd的一些相关知识点
  • 原文地址:https://www.cnblogs.com/walksnow/p/6011988.html
Copyright © 2011-2022 走看看