這篇文章介紹的內容是關於PHP中strlen() 和mb_strlen() 的比較 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
這篇文章是部落客原創,如轉載請註明出處。
首先看一下官方文件是怎麼說的;
strlen()-用來取得字串長度
int strlen ( #string $ string
)
傳回給定的字串string
的長度。
mb_strlen — 取得字串的長度
##mb_strlen ( string $str
[, string $encoding
= mb_internal_encoding() ] )
取得一個string 的長度。
str:要檢查長度的字串。
encoding:encoding
參數為字元編碼。如果省略,則使用內部字元編碼。
注意:strlen()函數無法正確處理中文字串,它得到的只是字串所佔的位元組數,
在strlen(),編碼為GB2312,一個漢字佔2個位元組。編碼為utf-8的話,一個漢字佔3個位元組。
但是,
# 在mb_strlen()中,編碼為utf-8的話,一個漢字輸出的長度是1.
11程式碼幫助理解:
<?php header("Content-type:text/html;charset=utf-8"); echo "关于字符串你长度获取的测试"."<br />"; $_str_y = "hello"; $_str_c = "你好"; //strlen() echo "strlen()输出hello的长度".strlen($_str_y)."<br />"; echo "strlen()输出'你好'的长度".strlen($_str_c)."<br />"; /** * 输出: * strlen()输出hello的长度5 * strlen()输出'你好'的长度6 */ //mb_strlen() echo "mb_strlen( 不指定字符编码 )输出hello的长度".mb_strlen($_str_y)."<br />"; echo "mb_strlen( 不指定字符编码 )输出'你好'的长度".mb_strlen($_str_c)."<br />"; /** * mb_strlen( 不指定字符编码 )输出hello的长度5 * mb_strlen( 不指定字符编码 )输出'你好'的长度6 */ //mb_strlen() echo "mb_strlen( utf-8 )输出hello的长度".mb_strlen($_str_y,'utf-8')."<br />"; echo "mb_strlen( utf-8 )输出'你好'的长度".mb_strlen($_str_c,'utf-8')."<br />"; /** * 输出: * mb_strlen( utf-8 )输出hello的长度5 * mb_strlen( utf-8 )输出'你好'的长度2 */ ?>
以上是PHP中 strlen() 與 mb_strlen() 的比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!