中文擷取無亂碼的PHP

2021-06-21 04:03:19 字數 1099 閱讀 4521

<?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編碼當...