Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie nicht-chinesische Buchstaben in PHP

So entfernen Sie nicht-chinesische Buchstaben in PHP

青灯夜游
青灯夜游Original
2022-04-24 14:32:101636Durchsuche

So entfernen Sie nicht-chinesische Buchstaben in PHP: Verwenden Sie die Funktion preg_replace() mit regulären Ausdrücken, um nach nicht-chinesischen Buchstaben in der Zeichenfolge zu suchen und diese durch leere Zeichen zu ersetzen. Die Syntax lautet „preg_replace(“/[^x{. 4E00}-x{9FFF}]+/u",'', $str)".

So entfernen Sie nicht-chinesische Buchstaben in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

In PHP können Sie die Funktion preg_replace() mit regulären Ausdrücken verwenden, um nicht-chinesische Buchstaben in der Zeichenfolge zu entfernen .

Der reguläre Ausdruck lautet: /[^x{4E00}-x{9FFF}]+/u/[^x{4E00}-x{9FFF}]+/u

preg_replace()删除原理:利用正则表达式搜索字符串中的非中文字母,并将其替换成空字符''

preg_replace() Löschprinzip: Verwenden Sie reguläre Ausdrücke, um nach Zeichenfolgen zu suchen, die nicht Chinesische Buchstaben und ersetzen Sie sie durch Leerzeichen ''.

Implementierungsbeispiel: So entfernen Sie nicht-chinesische Buchstaben in PHP

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str= &#39;php中文网!-=1548&#39;;
$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
echo preg_replace($pattern,&#39;&#39;, $str);
?>

Beschreibung: preg_replace(): Die Funktion

preg_replace() kann die Suche und Ersetzung regulärer Ausdrücke durchführen und ist eine leistungsstarke Funktion zur Verarbeitung von Zeichenfolgenersetzungen. Das Syntaxformat dieser Funktion lautet wie folgt :

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
    Die Parameterbeschreibung lautet wie folgt:
  • $pattern: das zu durchsuchende Muster, das ein String oder ein String-Array sein kann;
  • $replacement: der zum Ersetzen verwendete String oder String-Array. Wenn dieses Argument ein String und $pattern ein Array ist, werden alle Muster durch diesen String ersetzt. Wenn $pattern und $replacement beide Arrays sind, wird jedes $pattern durch das entsprechende Element in $replacement ersetzt. Wenn $replacement weniger Elemente enthält als $pattern, wird das zusätzliche $pattern durch die leere Zeichenfolge ersetzt.
  • $subject: Der zu durchsuchende und zu ersetzende String oder String-Array. Wenn $subject ein Array ist, wird die Suche und Ersetzung für jedes Element von $subject durchgeführt, und der Rückgabewert ist ebenfalls ein Array.
  • $limit: Optionaler Parameter, die maximale Anzahl von Ersetzungen pro Muster für jedes $subject. Der Standardwert ist -1 (unendlich).
$count: optionaler Parameter, falls angegeben, wird mit der Anzahl der abgeschlossenen Ersetzungen gefüllt.

Wenn $subject ein Array ist, gibt die Funktion preg_replace() ein Array zurück, andernfalls gibt sie einen String zurück.

Wenn die Funktion preg_replace() eine Übereinstimmung findet, gibt sie das ersetzte $subject zurück, ansonsten das unveränderte $subject. Jeder Parameter der Funktion preg_replace() (außer dem Parameter $limit) kann ein Array sein. Wenn der Parameter $pattern und der Parameter $replacement beide Arrays sind, verarbeitet die Funktion die Schlüssel in der Reihenfolge, in der sie im Array erscheinen. Tritt ein Fehler auf, wird NULL zurückgegeben.

Der Parameter $replacement kann Rückverweise \n oder $n enthalten, letzteres wird syntaktisch bevorzugt. Jeder dieser Verweise wird durch den Text ersetzt, der von der n-ten übereinstimmenden Erfassungsuntergruppe erfasst wurde. n kann zwischen 0 und 99 liegen, wobei \0 und $0 den vollständigen Mustervergleichstext darstellen.

Die Methode zur Zählung der Seriennummern zum Erfassen von Untergruppen lautet: Die linke Klammer, die die erfassende Untergruppe darstellt, wird von links nach rechts beginnend bei 1 gezählt. Wenn Sie Backslashes in $replacement verwenden möchten, müssen Sie 4 ("\\" verwenden, da dies zuerst ein PHP-String ist, dann zwei nach dem Escapezeichen und dann als Originaltext betrachtet wird, nachdem er den Backslash der regulären Ausdrucks-Engine durchlaufen hat).

Wenn Sie im Ersetzungsmodus arbeiten und auf den Rückverweis eine andere Zahl folgen muss (zum Beispiel: Hinzufügen einer ursprünglichen Zahl direkt nach einem passenden Muster), können Sie keine Syntax wie \1 verwenden, um den Rückverweis zu beschreiben. Beispielsweise führt \11 dazu, dass preg_replace() nicht verstehen kann, ob eine \1-Rückreferenz gefolgt von einer ursprünglichen 1 oder eine \11-Rückreferenz gefolgt von nichts gewünscht wird. Die Lösung besteht in diesem Fall darin, ${1}1 zu verwenden. Dadurch wird eine separate Rückreferenz für $1 erstellt, eine separate Rückreferenz für Quelle 1.

Bei Verwendung des veralteten e-Modifikators maskiert diese Funktion einige Zeichen (z. B. ', " und NULL) und führt dann eine Rückreferenzersetzung durch. Wenn dies erledigt ist, stellen Sie bitte sicher, dass nach dem Parsen keine Rückreferenzen vorhanden sind. Syntaxfehler, die durch einzelne Zeichen verursacht werden Anführungszeichen oder doppelte Anführungszeichen (zum Beispiel: 'strlen('$1')+strlen("$2")' Stellen Sie sicher, dass Sie die Zeichenfolgensyntax von PHP einhalten und die Eval-Syntax einhalten die eval-Methode, um die Ergebniszeichenfolge als PHP-Code auszuwerten und den Rückgabewert als endgültige zu ersetzende Zeichenfolge zu verwenden Empfohlenes Lernen: „

PHP-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonSo entfernen Sie nicht-chinesische Buchstaben 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