兩款php 截取字串函數

來源:互聯網
上載者:User
 代碼如下 複製代碼

<?php
header ( "content-type:text/html; charset=utf-8" );

    function strcut($string, $length, $dot = '...',$charset='utf-8')
        {

      $strlen = strlen($string);

      if($strlen <= $length) return $string;

      $strcut = '';

      if(strtolower($charset) == 'utf-8')

      {

      $n = $tn = $noc = 0;

      while($n < $strlen)

      {

      $t = ord($string[$n]);

      if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {

      $tn = 1; $n++; $noc++;

      } elseif(194 <= $t && $t <= 223) {

      $tn = 2; $n += 2; $noc += 2;

      } elseif(224 <= $t && $t <= 239) {

      $tn = 3; $n += 3; $noc += 3;

      } elseif(240 <= $t && $t <= 247) {

      $tn = 4; $n += 4; $noc += 4;

      } elseif(248 <= $t && $t <= 251) {

      $tn = 5; $n += 5; $noc += 5;
      } elseif($t == 252 || $t == 253)
      {
        $tn = 6; $n += 6; $noc += 6;
      }
      else
      {

      $n++;

      }
      if($noc >= $length) break;
      }
      if($noc > $length) $n -= $tn;
      $strcut = substr($string, 0, $n);

      }
      else
      {
        $dotlen = strlen($dot);
        $maxi = $length - $dotlen - 1;

        for($i = 0; $i < $maxi; $i++)
        {
          $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
        }
      }
      var_dump($strcut);
      return $strcut;
        }
        echo "jjjkkklll";
        echo strcut("向kk向向向kk向向向kk向向kkklllllllllllmmmmmmmmmmmmmmm向東陽",12)


字元截取函數二

 代碼如下 複製代碼
function splitstr($str,$len){
    if($len<=0){
  return false;
    }
    else{
  $slen=strlen($str);
  if($len>=$slen)
      return $str;
  else{
      for($i=0;$i<($len-1);$i++){
    if(ord(substr($str,$i,1))>0xa0)
  $i++;
      }
      if($i>=$len)
    return substr($str,0,$len);
elseif(ord(substr($str,$i,1))>0xa0)
    return substr($str,0,$len-1);
      else
    return substr($str,0,$len);
  }
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.