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

首頁 > 語言 > PHP > 正文

編寫PHP程序檢查字符串中的中文字符個數的實例分享

2024-05-04 23:44:11
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了編寫PHP程序檢查字符串中的中文字符個數的實例分享,文中利用了PHP中mb_strlen函數的實現原理,需要的朋友可以參考下
 

有時候我們需要計算一個字符串中包含的字數,對于純英文字符串,字數等于字符串長度,用
strlen函數即可獲得,但如果字符串中包含中文怎辦?mb_strlen可以實現,但不幸沒裝擴展,那就自己實現一下吧。

php有一個擴展一般是必裝的,我們可以使用mb_strlen來獲取字符串中的字數,用法一般如下:

$len = mb_strlen("你是我的小蘋果","utf-8");


如愿獲得字符串長度:7.

如果沒裝mb擴展呢?自己實現一下吧。

我們要先明白一個事實:字符串是由字符組成的,而字符是由字節表示的,每個英文字符是一個字節,對應一個ascii碼,英文字符的ascii碼是小于128的,也就是十六進制的 0x80 .當一個字節的ascii碼超過了127,那就說明當前字節不是一個完整的字符。

比如

$str = "你是我的小蘋果";

中的$str{0}可以取到第一個字節,我們來看一下它是啥:

php > $str = "你是我的小蘋果";php > echo $str{0};?

是個亂碼,它只是

復制代碼代碼如下:
        
字的字節之一,也就是說,
復制代碼代碼如下:

這個字符是由超過一個字節組成的,我們這樣試試:

 

php > echo $str{0}.$str{1}.$str{2};


可以看到,將三個字節連在一起輸出,就成了一個完整的

復制代碼代碼如下:

。

 

至于這里為什么是三個字節,而不是兩個或4個?這個取決于字符串的編碼,我這里控制臺默認是utf8編碼的,在PHP中,一個utf8字符是用三個字節表達的,如果是gbk編碼,則會是兩個字節。至于編碼和字節的關系,這個話題比較大,一篇說不完,請參考這篇文章:字符編碼筆記:ascii,unicode和utf8 。

知道了這些,我們就可以自己編寫一個字數檢查的函數了,大致流程如下:

1.for循環遍歷字節 2.判斷字節編碼是否 >= 0x80,是的話跳過N個字節

我寫了個簡單的函數,可以判斷gbk或utf8字符串的長度,僅供參考:

<?phpfunction mbstrlen($str,$encoding="utf8"){  if (($len = strlen($str)) == 0) {    return 0;  }  $encoding = strtolower($encoding);  if ($encoding == "utf8" or $encoding == "utf-8") {    $step = 3;  } elseif ($encoding == "gbk" or $encoding == "gb2312") {    $step = 2;  } else {    return false;  }  $count = 0;  for ($i=0; $i<$len; $i++) {    $count++;    //如果字節碼大于127,則根據編碼跳幾個字節    if (ord($str{$i}) >= 0x80) {      $i = $i + $step - 1;//之所以減去1,因為for循環本身還要$i++    }  }  return $count;}echo mbstrlen(iconv("utf-8","gbk","你是我的小蘋果"),"gbk");echo mbstrlen("你是我的小蘋果");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人久久久精品一区| 成人午夜一级二级三级| 国产精品久久久久久久久久ktv| 欧美成人免费大片| 久久久久久久久久国产| 亚洲成人网久久久| 粗暴蹂躏中文一区二区三区| 国产亚洲欧美日韩美女| 91夜夜未满十八勿入爽爽影院| 亚洲伊人成综合成人网| 久久久爽爽爽美女图片| 亚洲精品免费网站| 亚洲欧洲一区二区三区久久| 黄色一区二区在线观看| 亚洲欧美在线播放| 国产精品久久久久久久久影视| 国产色综合天天综合网| 中文字幕亚洲国产| 亚洲午夜精品久久久久久性色| 欧美在线日韩在线| 欧美第一淫aaasss性| 57pao国产精品一区| 亚洲精品国产福利| 亚洲精选中文字幕| 国产91精品不卡视频| 日韩免费在线电影| 久久久这里只有精品视频| 亚洲第一中文字幕在线观看| 日韩麻豆第一页| 欧美成年人视频| 日韩亚洲综合在线| 日韩成人av在线播放| 日韩亚洲国产中文字幕| 国产精品视频1区| 国外成人性视频| 97在线视频免费看| 国产欧美日韩免费看aⅴ视频| 欧美老少做受xxxx高潮| 日韩网站在线观看| 亚洲成人a**站| 2019中文字幕免费视频| 国产精品麻豆va在线播放| 亚洲91精品在线观看| 欧美色图在线视频| 精品国产欧美一区二区三区成人| 91成人在线观看国产| 国产成人短视频| 欧美孕妇与黑人孕交| 欧美激情奇米色| 欧美精品久久久久久久免费观看| 国产亚洲一区二区在线| 一区二区三区视频在线| 国产亚洲精品高潮| 国产精品1区2区在线观看| 亚洲精品网站在线播放gif| 久久精品电影网站| 韩国三级电影久久久久久| 亚洲人成电影网站色www| 亚洲综合在线中文字幕| 韩日精品中文字幕| 日韩在线视频线视频免费网站| 欧美日韩加勒比精品一区| 国产精品久久久久久av福利软件| 日韩经典一区二区三区| 国产免费一区二区三区在线观看| 欧美午夜xxx| 国产成人aa精品一区在线播放| 国产在线拍揄自揄视频不卡99| 日韩大胆人体377p| 亚洲精品久久久一区二区三区| 亚洲a在线播放| 国产精品久久久久国产a级| 国产精品视频26uuu| 亚洲夜晚福利在线观看| 久久这里有精品视频| 成人在线小视频| 亚洲第一综合天堂另类专| 亚洲黄色www| 国产精品观看在线亚洲人成网| 久久久久久尹人网香蕉| 日韩大片免费观看视频播放| 成人自拍性视频| 98视频在线噜噜噜国产| 国产日韩av在线播放| 毛片精品免费在线观看| 亚洲人永久免费| 日韩毛片在线看| 6080yy精品一区二区三区| 久久久精品视频在线观看| 欧美极品欧美精品欧美视频| 国产精品久久久久久久美男| 欧美日韩在线看| 国产精品亚洲精品| 亚洲韩国欧洲国产日产av| 日韩激情av在线免费观看| 国产美女精品视频| 九九热99久久久国产盗摄| 国产精品美女www爽爽爽视频| 国产成人91久久精品| 亚洲毛茸茸少妇高潮呻吟| 亚洲精品电影久久久| 91欧美精品成人综合在线观看| 国产精品一区二区三区成人| 青青在线视频一区二区三区| 日韩在线观看网站| 精品国产91久久久| 日韩成人久久久| 日韩av电影在线免费播放| 色噜噜狠狠狠综合曰曰曰| 国产精品7m视频| 亚洲福利视频久久| 日韩在线免费视频| 日韩av在线网| 久久影院中文字幕| 亚洲女人天堂av| 一区二区三区四区在线观看视频| 性欧美亚洲xxxx乳在线观看| 国产精品日韩电影| 日韩精品极品毛片系列视频| 色狠狠久久aa北条麻妃| 国产在线不卡精品| 91探花福利精品国产自产在线| 国产精品十八以下禁看| 欧美一区二区三区四区在线| 欧美精品午夜视频| 91中文在线观看| 欧美激情一区二区三区在线视频观看| 韩日精品中文字幕| 伊人久久久久久久久久久| 日韩高清电影免费观看完整| 日韩在线观看免费高清完整版| 91在线免费网站| 亚洲图片在区色| 日韩毛片中文字幕| 欧美一乱一性一交一视频| 久久久久亚洲精品| 中文字幕亚洲一区二区三区五十路| 日韩av大片免费看| 欧美成人激情图片网| 91老司机精品视频| 亚洲香蕉成人av网站在线观看| 精品久久久久久中文字幕| 欧洲成人午夜免费大片| 色无极亚洲影院| 91在线免费观看网站| 久久久久www| 亚洲一区第一页| 中文字幕日韩视频| 不卡在线观看电视剧完整版| 亚洲第五色综合网| 久久综合久中文字幕青草| 亚洲护士老师的毛茸茸最新章节| 亚洲天堂av在线免费| 国内精品中文字幕| 欧美一区二区三区精品电影| 久久精品99国产精品酒店日本| 日韩精品中文字幕有码专区| 日韩最新av在线| 国产日韩欧美影视| 成人黄在线观看| 久久这里有精品| 日韩大片免费观看视频播放| 69国产精品成人在线播放| 国产精品一久久香蕉国产线看观看|