utf8編碼下:中文佔
3個位元組,英文和數字佔
1個位元組(可變編碼)(變長編碼)
gbk編碼下:所有的中文、英文、數字都佔
2個位元組(定長編碼)
例如,有乙個字串,$str = 「地方見21423435
過很多苦法dsfsdfsdgsd
規和地方給
iu」如果是gbk
編碼:擷取
5個字元 ,相當於擷取
10個位元組
substr()
擷取的是位元組數
如果是utf8
編碼的話:擷取
5個字元:不知道擷取多少個位元組,因為不確定是中文還是英文
那麼怎麼判斷呢?
通常根據乙個字元的第乙個位元組,如果這個位元組 的ascii
碼 大於
224 佔3
個位元組,如果第乙個位元組的
ascii
碼,大於
192 佔2
個位元組,如果第乙個位元組的
ascii
碼小於192,佔1
個位元組
例子: function getpartstr($str,$len)//$str字串 $len 控制長度
elseif(ord($sstr)>192)elseif(ord($sstr)<192)
}if(strlen($str)<$one)else
}$asd='df袁過堂風然後他讓同一日騰';
echo getpartstr($asd,10);
php 擷取 ,php怎麼擷取字串
php內建了大量的字串操作函式,比如php implode,explode等等,php擷取字串,可以用substr,mb substr二個函式。phpsubstr語法substr string,start,length 引數string 即要擷取的字串 start 即要擷取的開始位置 0表示從從前往...
MYSQL Split字串並且插入值
demo begin 新增專案資料 3,1,1,2,1 2 declare tdocid int 宣告乙個輸出值 declare s int default 0 宣告乙個判斷游標到最後的檢測值 declare tyoub cursor for select value from zzsplittab...
php的字串擷取
這個功能在php輸出頁面的時候很常用 就是把乙個字串擷取為不大於某個長度的字串。本身是很簡單的事情,但是附加了一些需求 1,字串中含有中文,也就是單位元組雙位元組混著的。2,字串中含有html 對於中文擷取,網上有現成的 可以拿來用,就像這樣 function trunk str most,retu...