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















 
 
 
 
 
 
 