<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP如何獲取中文字符串長度

    時間:2025-02-15 04:12:58 php語言 我要投稿
    • 相關推薦

    PHP如何獲取中文字符串長度

      PHP對中文字符串的處理一直困擾于剛剛接觸php開發的新手程序員。下面就有小編分享PHP如何獲取中文字符串長度的方式,歡迎大家學習!

      PHP自帶的函數如strlen()、mb_strlen()都是通過計算字符串所占字節數來統計字符串長度的,一個英文字符占1字節。例:

      $enStr = ‘Hello,China!’;

      echo strlen($enStr); // 輸出:12

      而中文則不然,做中文網站一般會選擇兩種編碼:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站長的喜愛。gbk與utf-8對中文的編碼不同,導致中文在gbk與utf-8編碼下所占字節也有差異。

      gbk編碼下每個中文字符所占字節為2,例:

      $zhStr = ‘您好,中國!’;

      echo strlen($zhStr); // 輸出:12

      utf-8編碼下每個中文字符所占字節為3,例:

      $zhStr = ‘您好,中國!’;

      echo strlen($zhStr); // 輸出:18

      那么如何計算這組中文字符串的長度呢?有人可能會說gbk下獲取中文字符串長度除以2,utf-8編碼下除以3不就行了嗎?但是您要考慮字符串并不老實,99%的情況會以中英混合的情況出現。

      這是WordPress中的一段代碼,主要思想就是先用正則將字符串分解為個體單元,然后再計算單元的個數即字符串的長度,代碼如下(只能處理utf-8編碼下的字符串):

      $zhStr = ‘您好,中國!’;

      $str = ‘Hello,中國!’;

      // 計算中文字符串長度

      function utf8_strlen($string = null) {

      // 將字符串分解為單元

      preg_match_all(“/./us”, $string, $match);

      // 返回單元個數

      return count($match[0]);

      }

      echo utf8_strlen($zhStr); // 輸出:6

      echo utf8_strlen($str); // 輸出:9

      mb_strlen()方法有同樣的效果


    【PHP如何獲取中文字符串長度】相關文章:

    php獲取數組長度詳解05-24

    php中獲取數組長度的方法05-21

    獲取php數組長度函數的方法06-05

    PHP如何獲取表單07-27

    php獲取數組長度的方法有哪些02-17

    PHP如何獲取系統信息02-02

    php指定長度分割字符串str-split函數如何實現06-15

    php如何獲取指定地區天氣02-09

    PHP生成自定義長度隨機字符串實例07-22

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人