PHP函數(shù)mb_strcut的使用技巧分享
我們?cè)谶M(jìn)行PHP實(shí)際編碼時(shí),當(dāng)遇到需要分割文字的情況,會(huì)用到substr()函數(shù)來(lái)實(shí)現(xiàn)這一功能。但是,如果文字中包含中文的話會(huì)遇到一些問(wèn)題,導(dǎo)致編碼錯(cuò)誤。這時(shí)可以用mb_substr()或者#t#PHP函數(shù)mb_strcut,他們兩個(gè)的用法與substr()相似,只是在PHP函數(shù)mb_strcut***要加入多一個(gè)參數(shù),以設(shè)定字符串的編碼,但是一般的服務(wù)器都沒(méi)打開php_mbstring.dll,需要在php.ini在把php_mbstring.dll打開,如果我們不確定有沒(méi)有開啟這功能,那么我們***先判斷一下,if(function_exist(mb_string)).
舉個(gè)例子:
- < ?php
 - echo mb_substr('這樣一來(lái)我的字符串
 
就不會(huì)有亂碼^_^', 0, 7, 'utf-8');- ?>
 
輸出:這樣一來(lái)我的字
PHP函數(shù)mb_strcut的示例
- < ?php
 - echo mb_strcut('這樣一來(lái)我的字符串就不會(huì)有亂碼^_^', 0, 7, 'utf-8');
 - ?>
 
輸出:這樣一
從上面的例子可以看出,mb_substr是按字來(lái)切分字符,而PHP函數(shù)mb_strcut是按字節(jié)來(lái)切分字符,但是都不會(huì)產(chǎn)生半個(gè)字符的現(xiàn)象,但是有時(shí)候在輸出的時(shí)候也會(huì)出現(xiàn)截取的東西不正確,有的是對(duì)的有的不對(duì),而且中文還出現(xiàn)亂碼,這些現(xiàn)象產(chǎn)生的主要原因是你的這個(gè)函數(shù)的編方式和你顯示他的網(wǎng)頁(yè)的編碼方式不一致而導(dǎo)致的。
這里還介紹一個(gè)PHP截取中文字符串的自定義函數(shù):
PHP實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法
- function GBsubstr($string, $start, $length) {
 - if(strlen($string)>$length){
 - $str=null;
 - $len=$start+$length;
 - for($i=$start;$i<$len;$i++){
 - if(ord(substr($string,$i,1))>0xa0){
 - $str.=substr($string,$i,2);
 - $i++;
 - }else{
 - $str.=substr($string,$i,1);
 - }
 - }
 - return $str.'...';
 - }else{
 - return $string;
 - }
 - }
 
以上就是出現(xiàn)亂碼后使用PHP函數(shù)mb_strcut解決問(wèn)題的主要步驟。















 
 
 
 
 
 
 