Heim > Artikel > Backend-Entwicklung > Bezüglich der Lösung des Problems verstümmelter chinesischer Zeichen, die von substr() in PHP abgefangen werden
In diesem Artikel wird hauptsächlich die PHP-Funktion substr() vorgestellt, um das verstümmelte Problem beim Abfangen chinesischer Zeichenfolgen zu veranschaulichen.
Wenn ich sie in PHP verwenden möchte Es gibt kein Problem, wenn substr() eine Zeichenfolge abfängt, die ausschließlich auf Englisch ist. Wenn sie Chinesisch oder Englisch enthält, ist das eine Tragödie, aber keine Sorge, wir können das Problem mit anderen Methoden lösen.
PHP fängt chinesische Zeichenfolgen ab und es erscheinen verstümmelte Zeichen. Ich habe zuvor einen Artikel über die Verwendung von PHP zum Abfangen der ersten paar Wörter geschrieben Artikel als Beschreibungsmethode, aber IE6 kann CSS nicht laden. Hier ist eine Ergänzung.
Zuerst müssen wir dieses Problem klären. Der Grund, warum IE6 gelegentlich CSS nicht lädt, liegt darin, dass die Datei verstümmelt ist, was dazu führt, dass der nachfolgende Link zum Laden von CSS von IE6 nicht korrekt analysiert wird . Ich sah also eine reine HTML-Seite, kein CSS, nackt! Nach der Klärung des Problems kann das verbleibende Problem leicht gelöst werden, nämlich die Verhinderung verstümmelter Zeichen. Da die von Wange bereitgestellte Funktion verstümmelte Zeichen enthält, habe ich eine neue PHP-Funktion gefunden, um dieses Problem mit verstümmeltem Code zu lösen.
Die Funktion substr() kann Text teilen, es treten jedoch häufig Probleme auf, wenn der zu teilende Text chinesische Zeichen enthält.
Die Verwendung der Funktion mb_substr() ähnelt der von substr(), außer dass am Ende ein weiterer Parameter hinzugefügt wird, um die Kodierung der Zeichenfolge festzulegen.
Sie sollten den Grund verstehen, warum ich die Wange-Methode verbessert habe~~
Hier sind einige fortgeschrittenere Verarbeitungsmethoden
Beispiel 1
Der Code lautet wie folgt
function func_chgtitle($str,$len) { //$length我们允许字符串显示的最大长度 $tmpstr = ""; $strlen = $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; }
Beispiel 2
Die Zeichenfolge ist als UTF-8 codiert und ein chinesisches Zeichen belegt drei Bytes:
public static function chinesesubstr($str, $start, $len) { // $ str bezieht sich auf die Zeichenfolge, $start bezieht sich auf die Startposition der Zeichenfolge, $len bezieht sich auf die Länge der Zeichenfolge
$strlen = $start + $len ; // Verwenden Sie $strlen, um die Gesamtlänge der Zeichenfolge zu speichern, dh von der Startposition der Zeichenfolge bis zur Gesamtlänge der Zeichenfolge
The Der Code lautet wie folgt
for($i = $start; $i < $strlen;) { if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数 值大于0xa0,则表示汉字 $tmpstr .= substr ( $str, $i, 3 ); // 每次取出三位字符赋给变量$tmpstr,即等 于一个汉字 $i=$i+3; // 变量自加3 } else{ $tmpstr .= substr ( $str, $i, 1 ); // 如果不是汉字,则每次取出一位字符赋给 变量$tmpstr $i++; } } return $tmpstr; // 返回字符串 }
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Verwandte Empfehlungen:
php Besuchen Sie Oracle Stored Procedure mit grafischer Erklärung
php Implementiert die Methode zum Erhalten der aktuellen URL-Adresse
PHP implementiert die Methode zum Empfangen des Binärstroms und seiner Umwandlung in ein Bild
Das obige ist der detaillierte Inhalt vonBezüglich der Lösung des Problems verstümmelter chinesischer Zeichen, die von substr() in PHP abgefangen werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!