TASTE-OF-IT

PHP Development – preg_replace – Zeichen aus String entfernen

PHP Logo

PHP Logo

In PHP lassen sich relativ einfach ungewollte Zeichen aus einem String entfernen. Der Befehl der hier verwendet werden kann nennt sich “preg_replace” (PHP Manual zu preg_replace). Dieser erlaubt das Suchen mittels regulärer Ausdrücke innerhalb einer Zeichenkette.

Da das Thema sehr umfangreich ist, grade was die regulären Ausdrücke angeht, zeige ich nachfolgend ein paar Beispiele und erkläre sie kurz. Je nach Anwendung und Situation gibt es verschiede Ansätze und Möglichkeiten. Generell geht man nach der Whitelist-Methode vor, bei der nur die Zeichen angegeben werden die gewünscht sind.

preg_replace – Befehlsgrundlage (short)
# preg_replace(Suchmuster, Austauschzeichen, Zeichenkette)

Vorwort zu den nachfolgenden Suchmustern.

Beispiel – alle Zeichen entfernen die kein kleiner oder großer Buchstabe sind:

$string = "Heute wird es >15 Grad warm!";
$ergebnis = preg_replace("/[^a-zA-Z]/", "", $string);
echo $ergebnis;
# HeutewirdesGradwarm

Hier lässt sich auch mit dem Schalter “\i” arbeiten, der für Case-insensitive steht und somit keinen Wert auf Klein- oder Großschreibung legt.

Beispiel – alle Zeichen außer Klein- und Großbuchstaben und Zahlen entfernen:

$string = "Heute wird es >15 Grad warm!";
$ergebnis = preg_replace("/[^a-zA-Z0-9]/", "", $string);
echo $ergebnis;
# Heutewirdes15Gradwarm

Beispiel – nun wollen wir nicht nur die Buchstaben und Zahlen erhalten, sondern auch die Leerzeichen / Whitespace:

$string = "Heute wird es >15 Grad warm!";
$ergebnis = preg_replace("/[^a-zA-Z0-9\s]/", "", $string);
echo $ergebnis;
# Heute wird es 15 Grad warm

Entscheidend ist hier der Schalter “\s”, der für den Erhalt von Leerzeichen steht.

Beispiel – nun soll der gesamte Satz, außer dem “>” größer als Zeichen erhalten bleiben:

$string = "Heute wird es >15 Grad warm!";
$ergebnis = preg_replace("/[^a-zA-Z0-9!\s]/", "", $string);
echo $ergebnis;
# Heute wird es 15 Grad warm

Wie bereits geschrieben ist das Thema wesentlich komplexer, jedoch sollte obiges als Einstieg helfen und ein paar Tipps zum Gebrauch von preg_replace liefern.

Die mobile Version verlassen