preg_match() statt eregi()

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.

Zur Dokumentation auf php.net

 
fmg

fmg