亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

詳解PHP中strlen和mb_strlen函數的區別

2024-05-04 23:21:57
字體:
來源:轉載
供稿:網友

在PHP里有兩個計算字符串個數的函數
一個是 strlen,一個是mb_strlen;
先來看看手冊中的定義
strlen
strlen — 獲取字符串長度
int strlen ( string $string )
返回給定的字符串 string 的長度。

mb_strlen
int mb_strlen ( string $str [, string $encoding ] )
返回給定的字符串 string 的長度。
encoding參數為字符編碼。如果省略,則使用內部字符編碼。

這么看除了mb_strlen可以傳遞一個字符編碼好像沒有其他區別,下面通過例子,講解這兩者之間的區別。
先看例子:

復制代碼 代碼如下:


<?php    //測試時文件的編碼方式要是UTF8   
$str='中文a字1符';   
echo strlen($str).'<br>';//14   
echo mb_strlen($str,'utf8').'<br>';//6   
echo mb_strlen($str,'gbk').'<br>';//8   
echo mb_strlen($str,'gb2312').'<br>';//10   
?>



結果分析:在strlen計算時,對待一個UTF8的中文字符是3個長度,所以“中文a字1符”長度是3*4+2=14,在mb_strlen計算時,選定內碼為UTF8,則會將一個中文字符當作長度1來計算,所以“中文a字1符”長度是6 .
利用這兩個函數則可以聯合計算出一個中英文混排的串的占位是多少(一個中文字符的占位是2,英文字符是1)

復制代碼 代碼如下:

echo (strlen($str) + mb_strlen($str,'UTF8')) / 2; 



例如 “中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,則可以計算出“中文a字1符”的占位是10。

復制代碼 代碼如下:

echo mb_internal_encoding();



PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數。對于GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對于UTF-8編碼的中文,就是3倍的差異了(在 UTF-8編碼下,一個漢字占3個字節)。

采用mb_strlen函數可以較好地解決這個問題。mb_strlen的用法和 strlen類似,只不過它有第二個可選參數用于指定字符編碼。例如得到UTF-8的字符串$str長度,可以用 mb_strlen($str,'UTF-8')。如果省略第二個參數,則會使用PHP的內部編碼。內部編碼可以通過 mb_internal_encoding()函數得到。
需要注意的是,mb_strlen并不是PHP核心函數,Windows 下使用前需要確保在php.ini中加載了php_mbstring.dll,即確?!癳xtension=php_mbstring.dll”這一行存在并且沒有被注釋掉,否則會出現未定義函數的問題。Linux 下需要編譯這個擴展。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕在线成人| 亚洲免费视频观看| 91成人精品网站| 亚洲一区二区三区视频| 一区二区在线视频播放| 欧美另类精品xxxx孕妇| 国产精品视频在线播放| 久久视频在线免费观看| 亚洲最新av在线| 久久亚洲电影天堂| 2020久久国产精品| 91在线色戒在线| 日韩精品免费电影| 欧美中文字幕视频在线观看| 在线观看欧美www| 日韩在线一区二区三区免费视频| zzjj国产精品一区二区| 日本亚洲欧美成人| 91网站在线看| 日韩精品在线观看网站| 国产日韩欧美在线观看| 久久久久久久久亚洲| 国产成人亚洲综合| 97色在线观看免费视频| 成人免费淫片aa视频免费| 国产精品99久久久久久久久| 亚洲欧洲中文天堂| 欧美亚洲国产另类| 欧美性高潮床叫视频| 亚洲性视频网址| 欧美国产极速在线| 久久久久久有精品国产| 尤物99国产成人精品视频| 在线日韩欧美视频| 91久久精品在线| 国产精品情侣自拍| 亚洲成人免费在线视频| 欧美精品18videos性欧| 国产精品热视频| 欧美日韩中文字幕日韩欧美| 成人情趣片在线观看免费| 成人欧美在线视频| 欧美整片在线观看| 亚洲国产精品久久久久秋霞蜜臀| 91av在线播放视频| 日韩女优人人人人射在线视频| www.亚洲免费视频| 狠狠综合久久av一区二区小说| 久久伊人精品天天| 国产日韩在线视频| 最好看的2019年中文视频| 精品成人69xx.xyz| 久久久久久香蕉网| 国产亚洲欧洲黄色| 国产日韩欧美中文| 亚洲国产精品女人久久久| 91久久精品国产91性色| 亚洲第一色中文字幕| 亚洲老司机av| 国产精品视频成人| 91久久久久久国产精品| 亚洲а∨天堂久久精品9966| 92版电视剧仙鹤神针在线观看| 少妇久久久久久| 国产精品自产拍在线观看中文| 久久久av一区| 久久99精品国产99久久6尤物| www.日本久久久久com.| 国产精品亚洲一区二区三区| 亚洲成人久久久久| 亚洲成人a级网| 国产精品9999| 国语自产精品视频在线看一大j8| 欧美一区深夜视频| 亚洲国产精品资源| 欧美成人免费网| 欧美大片欧美激情性色a∨久久| 国产日韩在线观看av| 97在线精品视频| 久久av资源网站| 国产日韩欧美在线视频观看| 欧美成人精品影院| 国产精品青青在线观看爽香蕉| 国产亚洲精品美女| 欧美精品性视频| 国产精品欧美亚洲777777| 97久久精品人人澡人人爽缅北| 亚洲视频axxx| 日本高清不卡的在线| 亚洲精品永久免费精品| 亚洲国产天堂久久综合网| 亚洲va欧美va在线观看| 国产成人在线一区| 国产精品中文字幕在线观看| 国产精品88a∨| 亚洲mm色国产网站| 欧美色欧美亚洲高清在线视频| 欧美中文在线视频| 精品成人av一区| 国产精品入口夜色视频大尺度| 日韩av电影院| 欧美在线视频观看| 久久天天躁日日躁| 国产99在线|中文| 欧美日韩在线视频首页| 91免费看片网站| 亚洲人成电影在线播放| 精品国产91久久久久久老师| 国内偷自视频区视频综合| 久久视频免费观看| 91色中文字幕| 91免费福利视频| 秋霞成人午夜鲁丝一区二区三区| 日韩**中文字幕毛片| 91精品国产高清久久久久久久久| 亚洲精品之草原avav久久| 亚洲偷熟乱区亚洲香蕉av| 亚洲一区二区中文字幕| 亚洲国产精彩中文乱码av在线播放| 日韩视频在线免费观看| 欧美视频在线观看免费| 亚洲成人精品在线| 日本aⅴ大伊香蕉精品视频| 欧美性极品xxxx做受| 国产精品白嫩初高中害羞小美女| 国产91精品久久久久| 国产精品久久久久久久7电影| 久久综合伊人77777尤物| 亚洲已满18点击进入在线看片| 日韩欧美中文字幕在线播放| 亚洲国产又黄又爽女人高潮的| 97碰碰碰免费色视频| 九九热这里只有精品免费看| 日韩视频在线观看免费| 日韩免费观看网站| 亚洲精品视频播放| 91亚洲精品视频| 国产一区二区美女视频| 中文字幕欧美日韩va免费视频| 97视频在线播放| 欧美日韩在线免费观看| 国产视频久久久久久久| 亚洲另类欧美自拍| 亚洲一区二区三区四区视频| 久久久999国产| 欧美激情亚洲综合一区| 久久综合色影院| 亚洲欧美一区二区三区四区| 欧美裸体视频网站| 欧美在线视频一区| 日韩中文字幕免费看| 91免费电影网站| 国产精品福利无圣光在线一区| 色噜噜亚洲精品中文字幕| 日韩大胆人体377p| 美女性感视频久久久| 亚洲欧美国产精品专区久久| 欧美日韩国产一中文字不卡| 91国产高清在线| 精品成人乱色一区二区| 久久综合国产精品台湾中文娱乐网| 伊人伊成久久人综合网小说| zzjj国产精品一区二区| 欧美成人精品一区|