首页 > 语言 > PHP > 正文

两款php 截取字符串函数

2024-09-04 11:48:01
字体:
来源:转载
供稿:网友

提供两款php 截取字符串函数,他们能自动识别中文哦,如果你是截取文章这个很不错啊,喜欢就进来看看吧。

第一款:

  1. <?php 
  2. header ( "content-type:text/html; charset=utf-8" ); 
  3.     function strcut($string$length$dot = '...',$charset='utf-8'
  4.         { 
  5.       $strlen = strlen($string); 
  6.       if($strlen <= $lengthreturn $string
  7.       $strcut = ''
  8.       if(strtolower($charset) == 'utf-8'
  9.       { 
  10.       $n = $tn = $noc = 0; 
  11.       while($n < $strlen
  12.       { 
  13.       $t = ord($string[$n]); 
  14.       if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { 
  15.       $tn = 1; $n++; $noc++; 
  16.       } elseif(194 <= $t && $t <= 223) { 
  17.       $tn = 2; $n += 2; $noc += 2; 
  18.       } elseif(224 <= $t && $t <= 239) { 
  19.       $tn = 3; $n += 3; $noc += 3; 
  20.       } elseif(240 <= $t && $t <= 247) { 
  21.       $tn = 4; $n += 4; $noc += 4; 
  22.       } elseif(248 <= $t && $t <= 251) { 
  23.       $tn = 5; $n += 5; $noc += 5; 
  24.       } elseif($t == 252 || $t == 253)  
  25.       { 
  26.         $tn = 6; $n += 6; $noc += 6; 
  27.       } 
  28.       else  
  29.       { 
  30.       $n++; 
  31.       } 
  32.       if($noc >= $lengthbreak
  33.       } 
  34.       if($noc > $length$n -= $tn
  35.       $strcut = substr($string, 0, $n); 
  36.       } 
  37.       else 
  38.       { 
  39.         $dotlen = strlen($dot);  
  40.         $maxi = $length - $dotlen - 1; 
  41.         for($i = 0; $i < $maxi$i++) 
  42.         { 
  43.           $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; 
  44.         } 
  45.       } 
  46.       var_dump($strcut); 
  47.       return $strcut
  48.         } 
  49.         echo "jjjkkklll"
  50.         echo strcut("向kk向向向kk向向向kk向向kkklllllllllllmmmmmmmmmmmmmmm向东阳",12) 

第二款:

  1. function splitstr($str,$len){ 
  2.     if($len<=0){ 
  3.   return false; 
  4.     } 
  5.     else
  6.   $slen=strlen($str); 
  7.   if($len>=$slen
  8.       return $str
  9.   else
  10.       for($i=0;$i<($len-1);$i++){ 
  11.     if(ord(substr($str,$i,1))>0xa0) 
  12.   $i++; 
  13.       } 
  14.       if($i>=$len
  15.     return substr($str,0,$len); 
  16. elseif(ord(substr($str,$i,1))>0xa0) 
  17.     return substr($str,0,$len-1); 
  18.       else 
  19.     return substr($str,0,$len); 
  20.   } 
  21.     } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表