Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP preg_replace nicht ersetzt werden kann?

Was tun, wenn PHP preg_replace nicht ersetzt werden kann?

藏色散人
藏色散人Original
2021-03-05 10:23:212133Durchsuche

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.

Was tun, wenn PHP preg_replace nicht ersetzt werden kann?

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 = &#39;<p>    你好<p>&#39;;
 $str = preg_replace(&#39;/\s/is&#39;,&#39;&#39;,$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 = &#39;<p>    你好<p>&#39;;
 $str = str_replace(chr(194) . chr(160), "a", $str);  // 解决方法1
 $str = preg_replace(&#39;/\xC2\xA0/is&#39;, "a", $str);  // 解决方法2
 var_dump($str); //ok

Zusammenfassung: 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!

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