溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

PHP字符串mbstring處理中文字符串的具體方法是什么

發(fā)布時(shí)間:2021-10-18 16:50:58 來(lái)源:億速云 閱讀:124 作者:柒染 欄目:編程語(yǔ)言

這篇文章給大家介紹PHP字符串mbstring處理中文字符串的具體方法是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

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

多國(guó)語(yǔ)言并存就意味著多字節(jié),PHP內(nèi)置的字符串長(zhǎng)度函數(shù)strlen無(wú)法正確處理中文字符串,它得到的只是字符串所占的字節(jié)數(shù)。對(duì)于GB2312的中文編碼,strlen得到的值是漢字個(gè)數(shù)的2倍,而對(duì)于UTF-8編碼的中文,就是1~3倍的差異了。

采用PHP字符串mbstring可以較好地解決這個(gè)問(wèn)題。mb_strlen的用法和strlen類(lèi)似,只不過(guò)它有第二個(gè)可選參數(shù)用于指定字符編碼。例如得到UTF-8的字符串$str長(zhǎng)度,可以用mb_strlen($str,’UTF-8′)。如果省略第二個(gè)參數(shù),則會(huì)使用PHP的內(nèi)部編碼。內(nèi)部編碼可以通過(guò)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是按字來(lái)切分字符,而mb_strcut是按字節(jié)來(lái)切分字符,但是都不會(huì)產(chǎn)生半個(gè)字符的現(xiàn)象。而且從函數(shù)切割對(duì)長(zhǎng)度的作用也不同,mb_strcut的切割條件是小于strlen, mb_substr是等于strlen,看下面的例子,

< ?  $str = &lsquo;我是一串比較長(zhǎng)的中文-www.jefflei.com&rsquo;;  echo “mb_substr:” . mb_substr($str, 0, 6, &lsquo;utf-8&prime;);  echo ”  “;  echo “mb_strcut:” . mb_strcut($str, 0, 6, &lsquo;utf-8&prime;);  ?>

輸出如下:
mb_substr:我是一串比較
mb_strcut:我是

需要注意的是,PHP字符串mbstring并不是PHP核心函數(shù),使用前需要確保在php編譯模塊時(shí)加入mbstring的支持:
(1)編譯時(shí)使用&ndash;enable-mbstring
(2)修改/usr/local/lib/php.inc
default_charset = “zh-cn”
mbstring.language = zh-cn
mbstring.internal_encoding =zh-cn

PHP字符串mbstring類(lèi)庫(kù)內(nèi)容比較多,還包括mb_ send_ mail 之類(lèi)的email處理函數(shù)等

關(guān)于PHP字符串mbstring處理中文字符串的具體方法是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI