Da die PHP-Funktion eregi()
zur Auswertung regulärer Ausdrücke veraltet ist, sollte man zu preg_match()
umsteigen. Die Änderungen im Code sind eigentlich marginal. An einem Beispiel ist das gut zu sehen.
Zuerst eine Funktion, die eregi()
verwendet:
function verifiziereText ($teststring) { /* Buchstaben, Zahlen, Gedankenstriche, Punkte, Leerzeichen, Frage- und Ausrufezeichen, doppelte und einfache Anführungszeichen */ if (eregi("^([[:alnum:]]|[ÄäÖöÜüß]|-|\.| |\n|\r|\?|\!|\"|\')+$", $teststring)) { return 1; } else { return 0; } }
Und hier das gleiche Beispiel mit preg_match()
:
function verifiziereText ($teststring) { /* Buchstaben, Zahlen, Gedankenstriche, Punkte, Leerzeichen, Frage- und Ausrufezeichen, doppelte und einfache Anführungszeichen */ if (preg_match("/^([[:alnum:]]|[ÄäÖöÜüß]|-|\.| |\n|\r|\?|\!|\"|\')+$/i", $teststring)) { return 1; } else { return 0; } }
Leicht zu erkennen ist der Begrenzer /
in preg_match()
, der den Ausdruck einklammert. Am Ende kommt in diesem Fall der Parameter i
hinzu, der bedeutet, dass Groß- und Kleinschreibung nicht beachtet wird [schließlich wollen wir eregi()
ersetzen und nicht ereg()
].
Umlaute und Sonderzeichen müssen gesondert angegeben werden.