PHP: Elegant Zeichen entfernen

Oft will man aus einer Zeichenkette alles rauswerfen, was nicht einer bestimmten Vorgabe entspricht. Gibt es beispielsweise in einer Webanwendung ein Eingabefeld, über das der Anwender nach bestimmten Datensätzen suchen kann, möchte man seine Eingaben vielleicht so filtern, dass nur Buchstaben übrig bleiben.

Eine Methode wäre eine selbst geschriebene Funktion, die die Zeichenkette buchstabenweise durchackert und lediglich zulässige Zeichen in den Rückgabewert übernimmt. Es geht aber einfacher. Mit Hilfe der so genannten Regulären Ausdrücke legen Sie das gewünschte Suchmuster fest und verwenden die PHP-Funktion preg_replace(), um alle unerwünschten Zeichen zu entfernen.

Um zum Beispiel aus dem String $s alles herauszufiltern, was kein deutscher Buchstabe ist, würden Sie schreiben:

$regex =’/[^a-zAZäöüÄÖÜß]/’;

$s = preg_replace ($regex,”,$s);

Der Reguläre Ausdruck in der ersten Zeile bedeutet dabei “finde alles, was kein deutscher Buchstabe ist”. Die nächste Zeile tauscht dann alle diese Zeichen gegen einen leeren String aus, wodurch sie also effektiv entfernt werden.

Wollen Sie beispielsweise auch noch Ziffern erlauben? Kein Problem, erweitern Sie einfach das Suchmuster entsprechend:

$regex =’/[^a-zA-ZäöüÄÖÜß0-9]/’;

Ein empfehlenswertes deutschsprachiges Tutorial zu Regulären Ausdrücken bietet die Website http://www.regenechsen.de

Ähnliche Beiträge