Heim >Backend-Entwicklung >PHP-Problem >Was tun, wenn PHP preg_replace nicht ersetzt werden kann?
Lösung für den Fehler beim Ersetzen von php preg_replace: Öffnen Sie zuerst die entsprechende PHP-Codedatei, drucken Sie dann den ASCII-Code für die Zeichen aus, die nicht ersetzt werden können, und ersetzen Sie sie.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
php preg_replace-Speicherplatz kann nicht ersetzt werden
Ein kleiner Fehler. Lesen Sie einen Text (codiert utf-8) und möchten Sie Leerzeichen ersetzen. Weder str_replace(" "..) noch preg_replace("/s/"..) funktionieren.
rrree
Es gibt keinen anderen Weg. Ich habe nur die Leerzeichen gesehen, die nicht durch ord() ersetzt werden können. Es kommt ASCII 194 + 160 heraus.
<?php $str = '<p> 你好<p>'; $str = preg_replace('/\s/is','',$c); $str = str_replace(" ", "a", $str); var_dump($str); //不起作用Die Ursache des Problems liegt darin, dass es in der UTF-8-Kodierung ein Sonderzeichen gibt. Bei der Konvertierung in Zeichen erscheint es als Leerzeichen, gefolgt von Es ist dasselbe wie gewöhnliche Leerzeichen halber Breite (ASCII 0x20). Der einzige Unterschied besteht darin, dass seine Breite nicht komprimiert wird, weshalb es häufig für das Layout von Webseiten verwendet wird (z. B. zum Einrücken der ersten Zeile). Andere Kodierungsmethoden wie GB2312 und Unicode verfügen nicht über solche Zeichen. Vervollständigen Sie die verschiedenen gefundenen unersetzlichen Zeichen:
<?php $str = '<p> 你好<p>'; $str = str_replace(chr(194) . chr(160), "a", $str); // 解决方法1 $str = preg_replace('/\xC2\xA0/is', "a", $str); // 解决方法2 var_dump($str); //okZusammenfassung: Zeichen, die nicht ersetzt werden können, können Sie jederzeit durch Ausdrucken des ASCII-Codes ersetzen. 【Empfohlenes Lernen: „
PHP-Video-Tutorial“】
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP preg_replace nicht ersetzt werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!