Nicht druckbare Zeichen in Zeichenfolgen maskieren
Einführung:
Beim Umgang mit Textdaten Oft ist es erforderlich, bestimmte nicht druckbare Zeichen zu entfernen, die bei der Speicherung, Anzeige oder Verarbeitung zu Problemen führen können. Es ist von entscheidender Bedeutung, zu verstehen, wie diese Zeichen effizient entfernt werden können.
Lösung:
Um nicht druckbare Zeichen (0-31 und 127) zu entfernen, ziehen Sie die folgenden Optionen in Betracht die Kodierung Ihrer Zeichenfolge:
1. 7-Bit-ASCII:
$string = preg_replace('/[\x00-\x1F\x7F-\xFF]/', '', $string);
2. 8-Bit erweitertes ASCII:
$string = preg_replace('/[\x00-\x1F\x7F]/', '', $string);
3. UTF-8:
$string = preg_replace('/[\x00-\x1F\x7F]/u', '', $string);
4. Alternative mit str_replace:
$badchar = [...]; // Array of non-printable characters $string2 = str_replace($badchar, '', $str);
Benchmarking:
Die Leistung von preg_replace im Vergleich zu str_replace variiert je nach Stringlänge und -typ. Um den optimalen Ansatz für Ihren spezifischen Fall zu ermitteln, wird ein Benchmarking anhand Ihrer eigenen Daten empfohlen.
Was ist mit Unicode?
Um bestimmte nicht druckbare Unicode-Zeichen zu entfernen (z. B. NO-BREAK SPACE), verwenden Sie xA0 innerhalb der Zeichenklasse:
$string = preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $string);
Das obige ist der detaillierte Inhalt vonWie kann ich nicht druckbare Zeichen effizient aus Zeichenfolgen in verschiedenen Codierungen entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!