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;
    }

  • 相关阅读:
    bzoj4358: permu
    bzoj4636: 蒟蒻的数列
    bzoj4229: 选择
    bzoj4561: [JLoi2016]圆的异或并
    bzoj2618: [Cqoi2006]凸多边形
    bzoj1803: Spoj1487 Query on a tree III
    bzoj2467: [中山市选2010]生成树
    PostgreSQL服务器存储参数的内部查看方法和实际表述之间的关系
    PostgreSQL 系统表
    PostgreSQL环境中查看SQL执行计划示例
  • 原文地址:https://www.cnblogs.com/walksnow/p/6011988.html
Copyright © 2011-2022 走看看