Heim  >  Artikel  >  Backend-Entwicklung  >  Methode zur Aufteilung von PHP-Zeichenfolgen und chinesischen Zeichen

Methode zur Aufteilung von PHP-Zeichenfolgen und chinesischen Zeichen

高洛峰
高洛峰Original
2016-11-29 16:07:291346Durchsuche

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; >

}

$string="php fan network www.phpfensi.com";

$arr1=str_split_utf8($string);

echo join(" %",$arr1);

?>

Methode 2, der Beispielcode lautet wie folgt:

$str ="php fan network: http://www.phpfensi.com";

function mbstringtoarray($str,$charset) {

$strlen=mb_strlen($str); >

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);

?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn