Heim > Artikel > Backend-Entwicklung > Was tun, wenn die Länge der PHP-Strings inkonsistent ist?
Lösungen für inkonsistente PHP-Stringlängen: 1. Überprüfen Sie die Codierungsmethode des Strings mit der Funktion mb_detect_encoding(). 2. Überprüfen Sie die spezifische Zeichenlänge mit der Funktion mb_strlen. 3. Verwenden Sie den regulären Ausdruck „preg_match_all('/[x {4e00 }-x{9fff}]+/u', $str1, $matches);" Entfernen Sie einfach nicht-chinesische Zeichen.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 8.1, DELL G3-Computer
php Was soll ich tun, wenn die Zeichenfolgenlängen inkonsistent sind?
Das Problem der gleichen Zeichenfolgen, aber unterschiedlicher Länge in PHP a Blick auf „Logistics Support Department“, aber die Länge des einen beträgt 21 und die des anderen 15.
Zuallererst denken Sie vielleicht intuitiv, dass es durch unterschiedliche Codierungsmethoden verursacht wird. Überprüfen Sie die Codierungsmethode der beiden Zeichenfolgen mit der Funktion . Der Code lautet wie folgt:<?php header("Content-Type: text/html;charset=utf-8"); $data[0]=$str1="后勤保障部"; $data[1]=$str2="后勤保障部"; var_dump($data); //查看编码方式 $encode1 = mb_detect_encoding($str1, array("ASCII","UTF-8","GB2312","GBK","BIG5")); $encode2 = mb_detect_encoding($str2, array("ASCII","UTF-8","GB2312","GBK","BIG5")); echo "str1='".$str1."'"." 编码:".$encode1."</br>"; echo "str2='".$str2."'"." 编码:".$encode2."</br>"; ?>
Was ist der Grund? Schauen wir uns die spezifische Zeichenlänge in der Ausgabe an Es werden tatsächlich nur 5 angezeigt, nämlich die „Logistics Support Department“
Durch Abfangen. Die letzten beiden Zeichen von str1 anzeigen
<?php header("Content-Type: text/html;charset=utf-8"); $data[0]=$str1="后勤保障部"; $data[1]=$str2="后勤保障部"; var_dump($data); //查看编码方式 $encode1 = mb_detect_encoding($str1, array("ASCII","UTF-8","GB2312","GBK","BIG5")); $encode2 = mb_detect_encoding($str2, array("ASCII","UTF-8","GB2312","GBK","BIG5")); //当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符 //strlen,得到的是字符串所占的字节数 echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>"; echo "str2='".$str2."'".": 字符长度:".mb_strlen($str2).": 字节长度:".strlen($str2)." 编码:".$encode2."</br>"; ?>
können nicht per Echo angezeigt werden, belegen aber zwei Zeichen
Wenn die Zeichenfolgen gleich aussehen Um tatsächlich gleich zu sein, müssen sie verarbeitet werden, um nicht-chinesische Zeichen zu entfernen: Byte str1 in das SQL-Eingabefeld von phpmyadmin eingeben, wird es wie folgt angezeigtmb_detect_encoding()
PHP-Video-Tutorial》
Das obige ist der detaillierte Inhalt vonWas tun, wenn die Länge der PHP-Strings inkonsistent ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!