首先
比較strlen和mb_strlen
$str='中文字元ab';
echo strlen($str);
echo '
';echo mb_strlen($str,'utf8');
//輸出結果
//14
//6
在strlen計算時,對待乙個utf8的中文字元是3個長度,所以"中文字元ab"長度是3*4+2=14
在mb_strlen計算時,選定內碼為utf8,則會將乙個中文字元當作長度1來計算,所以"中文a字1符"長度是6
利用strlen和mb_strlen這兩個函式則可以聯合計算出乙個中英文混排的串的佔位是多少(乙個中文字元的佔位是2,英文本元是1),計算的方法是:如果乙個混排字串有a個中文,b個英文,佔位是:
$str='中文字元ab';
//計算如下
echo (strlen($str) + mb_strlen($str,'utf8')) / 2;
//輸出結果
//10
這個結果正是我想要的,正確計算出了乙個字串的位元組數。 php 中英文混排字串擷取
需要用到兩個系統函式 1.mb strwidth str,encoding 返回字串的寬度 str 要計算的字串 encoding 要使用的編碼,如 utf8 gbk 2.mb strimwidth str,start,width,tail,encoding 按寬度擷取字串 str 要擷取的字串 s...
PHP 中英文混排擷取字串
轉 由於網上版本太多,不知道誰是原版,so 不標位址了 mb strwidth str,encoding 返回字串的寬度 str 要計算的字串 encoding 要使用的編碼,如 utf8 gbk mb strimwidth str,start,width,tail,encoding 按寬度擷取字串...
利用PHP函式計算中英文本串長度的方法
一般來說大家知道英文本元佔乙個位元組,而中文字元gbk佔兩個字元,utf8佔三個字元,很多人印象中php計算字串長度就是mphkoktmkestrlen 函式,其實不然,它計算的是位元組的長度而非字元的長度,那麼如何獲取乙個字串中字元的長度呢?還有有mb strlen 具體 如下 複製 如下 ech...