php判斷字符串長度 strlen()與mb_strlen()函數


PHP strlen() 函數

定義和用法

strlen() 函數返回字符串的長度。

語法

strlen(string)

參數:string 

 1 <?php 
 2 
 3 $str=‘中文a字1符‘; 
 4 
 5 echo strlen($str); 
 6 
 7 echo ‘<br />‘; 
 8 
 9 echo mb_strlen($str,‘UTF8‘); 
10 
11 //輸出結果 
12 
13 //14 
14 
15 //6 
16 
17 ?>

結果分析:在strlen計算時,對待一個UTF8的中文字符是3個長度,所以“中文a字1符”長度是3*4+2=14 
在mb_strlen計算時,選定內碼為UTF8,則會將一個中文字符當作長度1來計算,所以“中文a字1符”長度是6

 

mb_strlen()函數

需要注意的是,mb_strlen並不是PHP核心函數,使用前需要確保在php.ini中加載了php_mbstring.dll,即確保

“extension=php_mbstring.dll”這一行存在並且沒有被注釋掉,否則會出現未定義函 數的問題。

<?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 .


雖然上面函數可以簡單解決一些中英文混合問題,但是不能用於實實際中,下面我來給各位朋友介紹其它比較好的辦

法。

PHP獲取中英文混合字符串長度的實現代碼如下,1中文=1位,2英文=1位,可自行修改


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM