Heim > Backend-Entwicklung > PHP-Tutorial > Wie entferne ich effektiv nicht druckbare Zeichen aus Zeichenfolgen in verschiedenen Zeichenkodierungen?

Wie entferne ich effektiv nicht druckbare Zeichen aus Zeichenfolgen in verschiedenen Zeichenkodierungen?

Linda Hamilton
Freigeben: 2024-12-10 19:32:11
Original
513 Leute haben es durchsucht

How to Effectively Remove Non-Printable Characters from Strings in Different Character Encodings?

So entfernen Sie nicht druckbare Zeichen aus einer Zeichenfolge

Bei der Arbeit mit Textdaten ist es häufig erforderlich, nicht druckbare Zeichen zu entfernen sorgen für Konsistenz und Lesbarkeit. Dazu gehören Steuerzeichen (0-31) und erweiterte ASCII-Zeichen (127 und höher).

7-Bit-ASCII

Für 7-Bit-ASCII-Zeichenfolgen können Sie Verwenden Sie den folgenden regulären Ausdruck, um nicht druckbare Zeichen zu entfernen:

$string = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $string);
Nach dem Login kopieren

8-Bit Extended ASCII

Um Zeichen im Bereich von 128-255 beizubehalten, passen Sie den regulären Ausdruck an:

$string = preg_replace('/[\x00-\x1F\x7F]/', '', $string);
Nach dem Login kopieren

UTF-8

Für Verwenden Sie für UTF-8-Zeichenfolgen den Modifikator /u, um Unicode zu berücksichtigen Zeichen:

$string = preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $string);
Nach dem Login kopieren

Alternative: str_replace

Während preg_replace im Allgemeinen effizient ist, können Sie str_replace auch wie folgt verwenden:

// Create an array of non-printable characters
$badchars = array(
    // Control characters
    chr(0), chr(1), chr(2), chr(3), chr(4), chr(5), chr(6), chr(7), chr(8),
    chr(9), chr(10), chr(11), chr(12), chr(13), chr(14), chr(15), chr(16),
    chr(17), chr(18), chr(19), chr(20), chr(21), chr(22), chr(23), chr(24),
    chr(25), chr(26), chr(27), chr(28), chr(29), chr(30), chr(31),
    // Non-printable characters
    chr(127)
);

// Replace the bad characters
$str2 = str_replace($badchars, '', $str);
Nach dem Login kopieren

Leistungsüberlegungen

Ob preg_replace oder str_replace ist schneller, abhängig von der Länge der Zeichenfolge. Bei kurzen Zeichenfolgen ist preg_replace normalerweise schneller, während str_replace bei längeren Zeichenfolgen möglicherweise effizienter ist. Um den besten Ansatz zu ermitteln, wird ein Benchmarking empfohlen.

Das obige ist der detaillierte Inhalt vonWie entferne ich effektiv nicht druckbare Zeichen aus Zeichenfolgen in verschiedenen Zeichenkodierungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage