Heim > Artikel > Backend-Entwicklung > Methode zur Aufteilung von PHP-Zeichenfolgen und chinesischen Zeichen
Die direkte Verwendung der PHP-Funktion „str_split“ zum Teilen führt zu verstümmelten Zeichen, da die Länge chinesischer Zeichen und die Länge englischer Zeichen unterschiedlich sind. Wir können jedoch eine neue Funktion erstellen, um die Zeichen zuerst in ASCII-Werte umzuwandeln und dann Beurteilen Sie die unterschiedlichen Zeichenlängen, um die chinesische Zeichenfolge korrekt aufzuteilen, speichern Sie das Ergebnis in einem Array und verwenden Sie schließlich die PHP-Funktion „join“, um Prozentzeichen zwischen Zeichen einzufügen
Methode 1, der Beispielcode lautet wie folgt :
function str_split_utf8($str){
$split=1;
$array=array(
for($ i=0;$i $value=ord($str[$i]); if($value> ;127){ if($value>=192&&$value<=223) $split=2; elseif($value>=224 && $value<=239) $split =3; elseif($value>=240 && $value<=247) $split=4 $split=1 } $key=null; for($j=0;$j<$split;$j++,$i++){ $key .=$str[$i ]; array_push($array,$key); return $array; >
while($strlen){
$array[]=mb_substr($str,0,1,$charset);
$str=mb_substr($str,1, $strlen,$charset);
$strlen=mb_strlen($str);
return $array; 🎜>$arr=mbstringtoarray($str, "gb2312");
?>
Die Variable $charset ist die Webseitenkodierung, Wie „gb2312“ oder „utf-8“; Methode 1 erfordert, dass der Server die Erweiterung mbstring.dll aktiviert, andernfalls tritt ein Fehler bei der Codeausführung auf. Sie können die folgende Methode in Betracht ziehen.
Methode 3, Beispiele Der Code lautet wie folgt:
function str_to_arr($str){
$l=strlen($str);
for($ i=0;$i<$l;$i++){
$arr[]=ord($str [$i])>127?$str[$i].$str[++ $i]:$str[$i]
}
return $arr; 🎜>
} $arr=str_to_arr($str); ?>