国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

【phpcms-v9】改造phpcms-v9自帶的字符串截取函數

2024-09-10 07:15:51
字體:
來源:轉載
供稿:網友

1.phpcms-v9自帶的字符串截取函數在phpcms/libs/functions/global.func.php文件中:

  1. /**  
  2.  * 字符截取 支持UTF8/GBK  
  3.  * @param $string  
  4.  * @param $length  
  5.  * @param $dot  
  6.  */   
  7. function str_cut($string$length$dot = '...') {   
  8.     $strlen = strlen($string);   
  9.     if($strlen <= $lengthreturn $string;   
  10.     $string = str_replace(array(' ',' ''&''"'''', '', '', '', '<', '>', '·', ''), array('',' ', '&', '"', "'", '“''”''—''<''>''·''…'), $string);   
  11.     $strcut = '';   
  12.     if(strtolower(CHARSET) == 'utf-8') {   
  13.         $length = intval($length-strlen($dot)-$length/3);   
  14.         $n = $tn = $noc = 0;   
  15.         while($n < strlen($string)) {   
  16.             $t = ord($string[$n]);   
  17.             if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {   
  18.                 $tn = 1; $n++; $noc++;   
  19.             } elseif(194 <= $t && $t <= 223) {   
  20.                 $tn = 2; $n += 2; $noc += 2;   
  21.             } elseif(224 <= $t && $t <= 239) {   
  22.                 $tn = 3; $n += 3; $noc += 2;   
  23.             } elseif(240 <= $t && $t <= 247) {   
  24.                 $tn = 4; $n += 4; $noc += 2;   
  25.             } elseif(248 <= $t && $t <= 251) {   
  26.                 $tn = 5; $n += 5; $noc += 2;   
  27.             } elseif($t == 252 || $t == 253) {   
  28.                 $tn = 6; $n += 6; $noc += 2;   
  29.             } else {   
  30.                 $n++;   
  31.             }   
  32.             if($noc >= $length) {   
  33.                 break;   
  34.             }   
  35.         }   
  36.         if($noc > $length) {   
  37.             $n -= $tn;   
  38.         }   
  39.         $strcut = substr($string, 0, $n);   
  40.         $strcut = str_replace(array('∵''&''"', "'", '', '', '', '<', '>', '·', ''), array(' ', '&', '"', ''''“''”''—''<''>''·''…'), $strcut);   
  41.     } else {   
  42.         $dotlen = strlen($dot);   
  43.         $maxi = $length - $dotlen - 1;   
  44.         $current_str = '';   
  45.         $search_arr = array('&',' ''"', "'", '', '', '', '<', '>', '·', '','∵');   
  46.         $replace_arr = array('&',' ''"'''', '', '', '', '<', '>', '·', '',' ');   
  47.         $search_flip = array_flip($search_arr);   
  48.         for ($i = 0; $i < $maxi$i++) {   
  49.             $current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];   
  50.             if (in_array($current_str$search_arr)) {   
  51.                 $key = $search_flip[$current_str];   
  52.                 $current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);  //開源軟件:Vevb.com 
  53.             }   
  54.             $strcut .= $current_str;   
  55.         }   
  56.     }   
  57.     return $strcut.$dot;   
  58. }   
  59.    
  60. //weiyanhui自己添加,字符串截取函數,建議使用自己寫的字符串截取函數,需要在php.ini中開啟php_mbstring.dll擴展   
  61. function str_cut1($string$length$dot = '...') {   
  62.     return mb_substr($string,0,$length,'utf-8').$dot;   
  63. }   

echo str_cut1("abcdefg",3,"...");//結果:abc...

echo str_cut1("我們都是中國人",3,"...");//結果:我們都...

不管是字母還是中文,都截取制定的長度.

例如:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威宁| 鹤庆县| 宁阳县| 东港市| 敦化市| 宝应县| 内黄县| 赤峰市| 当涂县| 凭祥市| 宜昌市| 进贤县| 抚顺县| 朔州市| 马关县| 卢氏县| 承德市| 宁明县| 金坛市| 阳东县| 江北区| 本溪市| 睢宁县| 宜城市| 古丈县| 从化市| 宁津县| 济阳县| 娱乐| 桑日县| 兴安县| 沛县| 华池县| 那曲县| 天等县| 吴旗县| 阜平县| 泰顺县| 龙泉市| 阳谷县| 霍邱县|