Heim  >  Artikel  >  Backend-Entwicklung  >  So entfernen Sie chinesische Leerzeichen in PHP

So entfernen Sie chinesische Leerzeichen in PHP

藏色散人
藏色散人Original
2021-07-17 10:30:172514Durchsuche

So entfernen Sie chinesische Leerzeichen in PHP: 1. Verwenden Sie den regulären Ausdruck „preg_replace('/^[(xc2xa0)|s]+/', '', $new['content']);“, um chinesische Leerzeichen zu entfernen ; 2. Durch regelmäßiges Ersetzen in MB werden chinesische Leerzeichen entfernt.

So entfernen Sie chinesische Leerzeichen in PHP

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

Wie entferne ich chinesische Leerzeichen in PHP?

Regulärer PHP-Code zum Entfernen chinesischer Leerzeichen

Es gibt mehrere chinesische Leerzeichen: Es gibt keine einfache Möglichkeit, das Problem zu lösen, z. B. Leerzeichen in halber und voller Breite, z. B. Absatzumbrüche, werden als angezeigt leer, und lassen Sie die Leute es dann missverstehen Es ist ein Leerzeichen. Bevor Sie das Leerzeichen entfernen, müssen Sie zunächst bestätigen, ob es sich bei Ihnen um ein Leerzeichen handelt. Ich werde diese beiden Lösungen unten analysieren.

(1)/[s|  ]+/Dies reicht aus. Auf | folgt ein Leerzeichen in voller Breite.

(2) Sie können außerdem die reguläre Ersetzung in MB ausprobieren. Fügen Sie den Deskriptor für reguläre Ausdrücke u hinzu

Aber da es im Chinesischen viele Leerzeichen gibt, die als Leerzeichen angezeigt werden, hat das, auf das ich unten gestoßen bin, die Unicode-Codierung C2A0. Das Problem kann durch die Verwendung des folgenden Ausdrucks gelöst werden.

$new['content'] = preg_replace('/^[(\xc2\xa0)|\s]+/', '', $new['content']);

Hier ist ein Detail: xc2a0 ist ursprünglich ein Unicode-Zeichen, aber es kann nicht mit mehreren Zeichen übereinstimmen und nur eines ersetzen [Dies kann am Byte-Problem liegen] Später habe ich plötzlich eine solche Schreibmethode gefunden, die das Problem gelöst hat Um die Situation zu vermeiden, in der chinesische und englische Leerzeichen gemischt werden, wird am Ende ein s hinzugefügt, um es zu löschen.

Tatsächlich sind reguläre Ausdrücke in Unicode nicht sehr einfach zu verwenden.

Andere Referenzen:

Wenn wir Daten verarbeiten, erzeugen wir oft zusätzliche Leerzeichen. Wenn Sie Zeichenfolgen vergleichen möchten, wird dadurch auch zusätzlicher Speicherplatz verschwendet.

Wie entferne ich Leerzeichen? Vielleicht denken Sie zuerst an die in PHP integrierte Funktion trim(). Ja, es ist tatsächlich effektiv bei der Verarbeitung des Anfangs und Endes von Zeichen, aber in diesem Fall kann es nicht: mehrere Leerzeichen in ein Leerzeichen umwandeln, Leerzeichen in eine geordnete und regelmäßige Warteschlange umwandeln usw.

Das ist also so wo reguläre Ausdrücke nützlich sind. Schauen Sie sich den folgenden Code an:

$str = ” This line contains\tliberal \r\n use of   whitespace.\n\n”;
// 首先去掉头尾空格
$str = trim($str);
// 接着去掉两个空格以上的
$str = preg_replace(’/\s(?=\s)/’, '', $str);
// 最后将非空格替换为一个空格
$str = preg_replace(’/[\n\r\t]/’, ' ', $str);

Verwenden Sie das obige Beispiel, um alle zusätzlichen Leerzeichen zu entfernen. Verwenden Sie zuerst TRim(), um führende und nachgestellte Leerzeichen zu entfernen, und verwenden Sie dann preg_replace(), um wiederholte Leerzeichen zu entfernen.

Das (?=) darin bedeutet, dass nur das folgende Leerzeichen und das vorhergehende Leerzeichen übereinstimmen.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo entfernen Sie chinesische Leerzeichen in PHP. 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