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
Linda HamiltonOriginal
2024-12-10 19:32:11487Durchsuche

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);

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);

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);

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);

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!

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