PHP中英文混排串的位元組數 即佔位符 的計算

2021-08-30 07:02:47 字數 624 閱讀 6400

首先

比較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...