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

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:43:25
字體:
來源:轉載
供稿:網友

在PHP中,strlen與mb_strlen是求字符串長度的函數,但是對于一些初學者來說,如果不看手冊,也許不太清楚其中的區別。

在PHP里有兩個計算字符串個數的函數,一個是 strlen,一個是mb_strlen;

先來看看手冊中的定義

strlen

strlen — 獲取字符串長度

int strlen ( string $string )

返回給定的字符串 string 的長度。

mb_strlen

int mb_strlen ( string $str [, string $encoding ] )

返回給定的字符串 string 的長度。

encoding參數為字符編碼。如果省略,則使用內部字符編碼,這么看除了mb_strlen可以傳遞一個字符編碼好像沒有其他區別,下面通過例子,講解這兩者之間的區別。

先看例子:

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

結果分析:在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,即確保“extension=php_mbstring.dll”這一行存在并且沒有被注釋掉,否則會出現未定義函數的問題。Linux 下需要編譯這個擴展。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美国产一区二区| 国语自产精品视频在线看抢先版图片| 亚洲人av在线影院| 亚洲日本中文字幕免费在线不卡| 国产成人精品国内自产拍免费看| 国产在线不卡精品| 欧美日韩国产一区在线| 日韩精品在线私人| 日韩av日韩在线观看| 日本免费久久高清视频| 98精品国产高清在线xxxx天堂| 97超碰国产精品女人人人爽| 欧美疯狂xxxx大交乱88av| 欧美成人手机在线| 欧美日产国产成人免费图片| 青青久久aⅴ北条麻妃| 久久国产精品亚洲| 亚洲在线第一页| 亚洲性生活视频在线观看| 中文字幕亚洲欧美一区二区三区| 久久久噜噜噜久噜久久| 亚洲精品v欧美精品v日韩精品| 亚洲一区二区福利| www.欧美视频| 亚洲激情中文字幕| 国模私拍一区二区三区| 久久久久久久91| 最近2019好看的中文字幕免费| 68精品国产免费久久久久久婷婷| 精品亚洲夜色av98在线观看| 欧美精品福利视频| 国产精品视频最多的网站| 国产欧美日韩专区发布| 51久久精品夜色国产麻豆| 91在线网站视频| 九九精品视频在线| 91色琪琪电影亚洲精品久久| 久久黄色av网站| 久久久久久久久久久国产| 91精品国产高清| 色综合久久悠悠| 国产精品久久视频| 国产精品久久久久久久久久免费| 欧美在线免费视频| 国产丝袜视频一区| 色偷偷88888欧美精品久久久| 在线激情影院一区| 永久555www成人免费| 色无极亚洲影院| 欧美日韩亚洲网| 日韩精品在线免费观看| 最近2019中文字幕mv免费看| 中文字幕日韩在线播放| 日韩在线不卡视频| 国产亚洲精品久久久久久777| 中文亚洲视频在线| 国产不卡av在线免费观看| 国产日韩专区在线| 欧美激情网站在线观看| 久久久久亚洲精品| 国产精品久久婷婷六月丁香| 欧美成人免费观看| 欧美日韩久久久久| 欧美有码在线观看视频| 国产色婷婷国产综合在线理论片a| 久久久亚洲欧洲日产国码aⅴ| 欧美性猛交xxxx免费看| 成人国内精品久久久久一区| 欧美美女18p| 97精品视频在线播放| 日韩欧美亚洲国产一区| 国精产品一区一区三区有限在线| 国产亚洲精品美女| 亚洲激情电影中文字幕| 高清亚洲成在人网站天堂| 精品日韩视频在线观看| 中国人与牲禽动交精品| 日韩中文视频免费在线观看| 久久人人爽人人爽人人片av高请| 亚洲热线99精品视频| 国产精品女人网站| 成人久久18免费网站图片| 亚洲男人天堂视频| 爽爽爽爽爽爽爽成人免费观看| www.日本久久久久com.| 国产亚洲xxx| 亚洲精选在线观看| 精品动漫一区二区| 国外色69视频在线观看| 欧美性猛交xxxx富婆| 久久久在线视频| 亚洲国产日韩欧美综合久久| 午夜精品久久久久久久久久久久| 亚洲成人久久久久| 国产精品一区二区久久久久| 久久久久久久久久久网站| 精品丝袜一区二区三区| 国产精品久久久久久久久男| 国产亚洲成av人片在线观看桃| 一个色综合导航| 丝袜亚洲另类欧美重口| 亚洲精品黄网在线观看| 国产成人精品一区二区| 欧美激情一区二区三区久久久| 久久天天躁狠狠躁夜夜爽蜜月| 欧美激情日韩图片| 欧美激情免费在线| 亚洲成年人影院在线| 日韩精品www| 久久精品福利视频| 日本一区二三区好的精华液| 精品少妇v888av| 国产视频精品自拍| 伊人久久男人天堂| 久久影视电视剧凤归四时歌| 美女啪啪无遮挡免费久久网站| 亚洲伊人一本大道中文字幕| 国产成人精品av在线| 日韩欧美大尺度| 日韩色av导航| 国产日韩中文字幕在线| 国产三级精品网站| 国产精品美女主播| 国模吧一区二区| 国产欧美日韩免费| 亚洲电影在线观看| 日韩亚洲欧美中文高清在线| 亚洲欧美在线看| 国产精品扒开腿做爽爽爽男男| 日韩精品免费观看| 亚洲香蕉av在线一区二区三区| 国产91色在线|| 国产精品美女免费| 日韩一区在线视频| 国产精品免费视频xxxx| 国产丝袜一区视频在线观看| 日韩精品久久久久久久玫瑰园| 国产一区二区三区在线免费观看| 国产一区二区在线免费| 91中文字幕在线观看| 国产在线视频一区| 欧美成人精品在线播放| 麻豆国产va免费精品高清在线| 在线观看久久久久久| 亚洲国产精久久久久久| 国产精品大片wwwwww| 91精品视频播放| 久久久久久久久久久成人| 亚洲影视中文字幕| 欧美激情在线观看| 国产精品久久999| 久久伊人精品一区二区三区| 久久天天躁狠狠躁夜夜躁| 亚洲欧美制服第一页| 成人激情视频网| 欧美亚洲在线视频| 欧美黄色三级网站| 午夜精品一区二区三区在线视频| 欧洲日韩成人av| 久久97精品久久久久久久不卡| 26uuu久久噜噜噜噜| 久久伊人91精品综合网站| 97超级碰碰碰| 欧美裸体xxxxx|