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