php中计算中文字符串长度、截取中文字符串

巴扎黑
Freigeben: 2016-11-11 13:39:35
Original
1144 Leute haben es durchsucht

在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理。在PHP中,我们都知道有专门的mb_substr和 mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启。当然,如果是用的自己 的服务器,则只要在php.ini中开启即可。如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了。

以下几个函数用起来颇为顺手的。不过要知道,得在utf-8环境下使用。

支持gb2312,gbk,utf-8,big5 中文截取方法 

/*  
  
* 中文截取,支持gb2312,gbk,utf-8,big5  
  
*  
  
* @param string $str 要截取的字串  
  
* @param int $start 截取起始位置  
  
* @param int $length 截取长度  
  
* @param string $charset utf-8|gb2312|gbk|big5 编码  
  
* @param $suffix 是否加尾缀  
  
*/  
   
public function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)   
   
{   
   
   if(function_exists("mb_substr"))   
   
   {   
   
       if(mb_strlen($str, $charset) <= $length) return $str;   
   
       $slice = mb_substr($str, $start, $length, $charset);   
   
   }   
   
   else  
   
   {   
   
       $re[&#39;utf-8&#39;]   = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";   
   
       $re[&#39;gb2312&#39;] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";   
   
       $re[&#39;gbk&#39;]          = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";   
   
       $re[&#39;big5&#39;]          = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";   
   
       preg_match_all($re[$charset], $str, $match);   
   
       if(count($match[0]) <= $length) return $str;   
   
       $slice = join("",array_slice($match[0], $start, $length));   
   
   }   
   
   if($suffix) return $slice."…";   
   
   return $slice;   
   
}
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!