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!