<?php////$str 待擷取的字串
//$len 擷取的字元個數
//$chars 已經擷取的字元數
//$res 儲存的字串
//$chars 儲存已經擷取的字串個數
//$offset 擷取的偏移量
//$length 字串的位元組數
//若$len>$str的字元個數,造成無謂的while迴圈,($offset<$length限定)
function utf8sub($str,$len)
$res="";
$offset=0;
$chars=0;
$length=strlen($str);
while($chars<$len && $offset<$length)elseif(substr($hign,0,3)=="110")elseif(substr($hign,0,4)=="1110")elseif(substr($hign,0,5)=="11110")elseif(substr($hign,0,6)=="111110")elseif(substr($hign,0,7)=="1111110")
$res.=substr($str,$offset,$count);
$offset+=$count;
$chars+=1;
}return $res;
}function utf8sub1($str,$len)elseif($hign & "11100000"=="11000000")elseif($hign & "11110000"=="11100000")elseif($hign & "11111000"=="11110000")elseif($hign & "11111100"=="11111000")elseif($hign & "11111110"=="11111100")
$res.=substr($str,$offset,$count);
$chars++;
$offset+=$count;
}return $res;
}$a="中華ah人民hdj";
echo utf8sub($a,5);
?>
本文章來至原始碼世界
php擷取中文無亂碼
在php中需要對字串進行擷取,如果沒有裝mb擴充套件 mb substr函式 對中文擷取就需要進行相應的處理。下面是對字串 世s界s的功s 夫薩的mn是非得失sdf dsf dsf 達 擷取10個字元,最後的輸出是 世s界s的 編碼均為utf8 ss 世s界s的功s 夫薩的mn是非得失sdf dsf...
php中文擷取無亂碼方法
直接使用php函式substr擷取中文字元可能會出現亂碼,主要是substr可能硬生生的將乙個中文字元 鋸 成兩半。解決辦法 1 使用mbstring擴充套件庫的mb substr擷取就不會出現亂碼了。2 自己書寫擷取函式,但效率不如用mbstring擴充套件庫來得高。3 如果僅是為了輸出擷取的串,...
中文擷取無亂碼
實現中文字串擷取無亂碼的方法 肖巖utf 8中文擷取函式 在php中,substr 函式擷取帶有中文字串的話,可能會出現亂碼,這是因為中西文乙個位元組所占有的位元組數不一樣,而substr的長度引數是按照位元組去算的,在gb2312編碼時,乙個中文佔2個位元組,英文為1個位元組,而在utf 8編碼當...