In einigen Fällen kann es erforderlich sein, nicht druckbare Zeichen aus einer Zeichenfolge zu entfernen Zeichenfolgen, beispielsweise solche in den Bereichen 0–31 und 127 während der Zeichenfolgenmanipulation oder von Daten Bereinigung.
Um nicht druckbare Zeichen im 7-Bit-ASCII-Bereich (0-31, 127-255) zu entfernen, verwenden Sie den folgenden regulären Ausdruck mit preg_replace:
$string = preg_replace('/[x00-x1Fx7F-xFF]/', '', $string);
Dadurch werden effektiv alle Zeichen innerhalb der angegebenen Bereiche entfernt.
Um 8-bit erweitertes ASCII zu verarbeiten und Zeichen zu eliminieren Verwenden Sie nur im Bereich 0-31 und 127 den angepassten regulären Ausdruck:
$string = preg_replace('/[x00-x1Fx7F]/', '', $string);
Für UTF-8 kodiert Zeichenfolgen wird empfohlen, den Modifikator /u in den regulären Ausdruck einzubinden:
$string = preg_replace('/[x00-x1Fx7F]/u', '', $string);
Dies stellt die genaue Entfernung bestimmter Steuerzeichen wie NO-BREAK SPACE (U 00A0) sicher, indem xA0 zum Zeichen hinzugefügt wird Klasse.
Während preg_replace effizient ist, sollten Sie str_replace als Alternative in Betracht ziehen, insbesondere für wiederholte Vorgänge.
// Erstellen Sie ein Array nicht druckbarer Zeichen
$badchars = array(
chr(0), chr(1), chr(2), ..., chr(31), chr(127)
);
// Ersetzen Sie unerwünschte Zeichen mit str_replace
$str2 = str_replace($badchars, '', $str);
Es ist wichtig, die Leistung beider Ansätze anhand Ihrer eigenen Daten zu vergleichen, um die optimale Lösung für Ihren spezifischen Fall zu ermitteln.
Das obige ist der detaillierte Inhalt vonWie kann ich nicht druckbare Zeichen aus einer Zeichenfolge in PHP entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!