Heim  >  Artikel  >  Backend-Entwicklung  >  Wie entferne ich Steuerzeichen effektiv aus PHP-Strings?

Wie entferne ich Steuerzeichen effektiv aus PHP-Strings?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 12:33:04753Durchsuche

How to Effectively Remove Control Characters from PHP Strings?

Steuerzeichen aus PHP-Strings entfernen

F: Ändern des regulären Ausdrucks zum Entfernen von Steuerzeichen

Ein PHP-Entwickler verwendete zuvor den folgenden Ausdruck, um Steuerzeichen wie STX aus einer Zeichenfolge zu entfernen:

preg_replace("/[^a-zA-Z0-9 .\-_;!:?äÄöÖüÜß<>='\"]/","",$pString)

Das Ergebnis war jedoch zu restriktiv, was die Frage aufwarf: Wie können Steuerzeichen selektiv entfernt werden?

A: Verwendung spezifischer Zeichenklassen zur Identifizierung von Steuerzeichen

Um Steuerzeichen gezielt anzusprechen, kann eine spezifischere Zeichenklasse verwendet werden:

preg_replace('/[\x00-\x1F\x7F]/', '', $input);

Dieser Ausdruck gleicht Zeichen mit ASCII-Codes im Bereich x00-x1F und x7F ab, einschließlich der ersten 32 Zeichen, und x7F, einschließlich Zeichen wie Wagenrückläufe.

Beibehaltung wesentlicher Zeichen wie Zeilenumbrüche

Wenn bestimmte Zeichen wie Zeilenvorschübe oder Wagenrückläufe beibehalten werden müssen, können deren Escape-Sequenzen ausgeschlossen werden:

preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);

In diesem modifizierten Ausdruck x0A (Zeilenvorschub) und x0D (Wagenrücklauf) sind von der Zeichenklasse ausgeschlossen.

Moderne Syntax und Veraltung

Es ist wichtig zu beachten, dass die Veraltung von ereg_replace in PHP 5.3.0 und seinen Die anschließende Entfernung in PHP 7.0.0 erfordert die Verwendung von preg_replace anstelle von ereg_replace.

Schließlich eine Zeichenklasse für Steuerzeichen

Für eine prägnante und portable Alternative ist die Zeichenklasse [:cntrl:] einsetzbar:

preg_replace('/[[:cntrl:]]/', '', $input);

Das obige ist der detaillierte Inhalt vonWie entferne ich Steuerzeichen effektiv aus PHP-Strings?. 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