广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    php中截取字符串支持utf-8

    2018-10-28 11:06:28 次阅读 稿源:互联网
    零七广告
    截取字符串
    <?php
    $string="2006年4月我又长大了一岁!";
    echo substr($string,1)."..."; 
     //截取字符串 
    function SubstrGB($in,$num)
    {
     $pos=0;
     $out="";
     while($pos<strlen($in))
     {
      $c=substr($in,$pos,1);
      if($c=="/n") break;
      if(ord($c)>128)
      {
       $out.=$c;
       $pos++;
       $c=substr($in,$pos,1);
       $out.=$c;
      }
      else
      {
       $out.=$c;
      }
      $pos++;
      if($pos>=$num) break;
     }
            return $out;

      echo SubstrGB($string,8) ;
     ?> 
    <?php
    /***************************************************************************
     *            cut_string.php
     *        ------------------------------
     *    Date        : Jul 16, 2005
     *    Copyright    : none
     *    Mail        : 
     *
     *    作用:截取中文字符.
     *
     *
     ***************************************************************************/
    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;
        }
    }
        echo "<br>".cut_str($string,8,$start=0,$code='sdf') ;
    ?> 

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告