新聞中心
大家通過對PHP的學(xué)習(xí),可以運(yùn)用這一高級語言創(chuàng)建一個性能較高的網(wǎng)站。對于初學(xué)者來說,對于PHP字符串mbstring還是比較陌生的,下面我們就來介紹一下PHP字符串mbstring的具體應(yīng)用。

公司主營業(yè)務(wù):網(wǎng)站制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出喀左免費(fèi)做網(wǎng)站回饋大家。
#t#多國語言并存就意味著多字節(jié),PHP內(nèi)置的字符串長度函數(shù)strlen無法正確處理中文字符串,它得到的只是字符串所占的字節(jié)數(shù)。對于GB2312的中文編碼,strlen得到的值是漢字個數(shù)的2倍,而對于UTF-8編碼的中文,就是1~3倍的差異了。
采用PHP字符串mbstring可以較好地解決這個問題。mb_strlen的用法和strlen類似,只不過它有第二個可選參數(shù)用于指定字符編碼。例如得到UTF-8的字符串$str長度,可以用mb_strlen($str,’UTF-8′)。如果省略第二個參數(shù),則會使用PHP的內(nèi)部編碼。內(nèi)部編碼可以通過mb_internal_encoding()函數(shù)得到,設(shè)置有兩種方式:
1. 在php.ini中設(shè)置mbstring.internal_encoding = UTF-8
2. 調(diào)用mb_internal_encoding(”GBK”)
除了PHP字符串mbstring,還有很多切割函數(shù),其中mb_substr是按字來切分字符,而mb_strcut是按字節(jié)來切分字符,但是都不會產(chǎn)生半個字符的現(xiàn)象。而且從函數(shù)切割對長度的作用也不同,mb_strcut的切割條件是小于strlen, mb_substr是等于strlen,看下面的例子,
- < ?
- $str = ‘我是一串比較長的中文-www.jefflei.com’;
- echo “mb_substr:” . mb_substr($str, 0, 6, ‘utf-8′);
- echo ”
- “;
- echo “mb_strcut:” . mb_strcut($str, 0, 6, ‘utf-8′);
- ?>
輸出如下:
mb_substr:我是一串比較
mb_strcut:我是
需要注意的是,PHP字符串mbstring并不是PHP核心函數(shù),使用前需要確保在php編譯模塊時加入mbstring的支持:
(1)編譯時使用–enable-mbstring
(2)修改/usr/local/lib/php.inc
default_charset = “zh-cn”
mbstring.language = zh-cn
mbstring.internal_encoding =zh-cn
PHP字符串mbstring類庫內(nèi)容比較多,還包括mb_ send_ mail 之類的email處理函數(shù)等
本文標(biāo)題:PHP字符串mbstring處理中文字符串的具體方法解析
當(dāng)前路徑:http://m.fisionsoft.com.cn/article/cdiijhj.html


咨詢
建站咨詢
