php 截取中文_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:淺析動態網頁技術PHP中錯誤處理的一些方法
      已經玩php一段時間了,基本是from 0開始的,經常出現的問題也很多,慢慢的可以熟練的查詢文檔了,而且,經驗也不是很多。 先look here。: error_reporting(1048);//1,2,4,7,...,1048 ob_start(); session_start(); date_default_timezone_set('Asia/Sh

      <?php
      < ?php
      //截取中文字符串
      function mysubstr(str, start, len) {
      tmpstr = "";
      strlen = start + len;
      for(i = 0; i < strlen; i++) {
      if(ord(substr(str, i, 1)) > 0xa0) {
      tmpstr .= substr(str, i, 2);
      i++;
      } else
      tmpstr .= substr(str, i, 1);
      }
      return tmpstr;
      }
      ?>

      2. 截取utf8編碼的多字節字符串
      <?php
      < ?php
      //截取utf8字符串
      function utf8Substr(str, from, len)
      {
      return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.from.'}'.
      '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.len.'}).*#s',
      '1',str);
      }
      ?>

      3. UTF-8、GB2312都支持的漢字截取函數
      <?php
      < ?php
      /*
      Utf-8、gb2312都支持的漢字截取函數
      cut_str(字符串, 截取長度, 開始長度, 編碼);
      編碼默認為 utf-8
      開始長度默認為 0
      */

      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 = "abcd需要截取的字符串";
      echo cut_str(str, 8, 0, 'gb2312');
      ?>

      4. BugFree 的字符截取函數
      <?php
      < ?php
      /**
      * @package BugFree
      * @version Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp
      *
      *
      * Return part of a string(Enhance the function substr())
      *
      * @author Chunsheng Wang <wwccss@263.net>
      * @param string String the string to cut.
      * @param int Length the length of returned string.
      * @param booble Append whether append "...": false|true
      * @return string the cutted string.
      */
      function sysSubStr(String,Length,Append = false)
      {
      if (strlen(String) < = Length )
      {
      return String;
      }
      else
      {
      I = 0;
      while (I < Length)
      {
      StringTMP = substr(String,I,1);
      if ( ord(StringTMP) >=224 )
      {
      StringTMP = substr(String,I,3);
      I = I + 3;
      }
      elseif( ord(StringTMP) >=192 )
      {
      StringTMP = substr(String,I,2);
      I = I + 2;
      }
      else
      {
      I = I + 1;
      }
      StringLast[] = StringTMP;
      }
      StringLast = implode("",StringLast);
      if(Append)
      {
      StringLast .= "...";
      }
      return StringLast;
      }
      }

      String = "CodeBit.cn -- 簡單、精彩、通用";
      Length = "18";
      Append = false;
      echo sysSubStr(String,Length,Append);
      ?>

       

      分享:PHP函數:PHP的通用檢測函數總結
      // ※CheckMoney(C_Money) 檢查數據是否是99999.99格式 // ※CheckEmailAddr(C_mailaddr) 判斷是否為有效郵件地址 // ※CheckWebAddr(C_weburl) 判斷是否為有效網址 // ※CheckEmpty(C_char) 判斷字符串是否為空 // ※CheckLengthBetween(C_char, I_len1, I_

      來源:模板無憂//所屬分類:PHP教程/更新時間:2010-04-18
      相關PHP教程