Deprecated: Function ereg() is deprecated

Aus VMS1 Tutorial

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche

Jpwfour (Diskussion | Beiträge)
(Die Seite wurde neu angelegt: Die Meldung "'''deprecated'''" ("''überholt''") ist grundsätzlich nicht schlimm, da die Funktion noch vorhanden ist, nur in kommenden Versionen nicht mehr ver...)
Zum nächsten Versionsunterschied →

Aktuelle Version

Die Meldung "deprecated" ("überholt") ist grundsätzlich nicht schlimm, da die Funktion noch vorhanden ist, nur in kommenden Versionen nicht mehr verwendet werden kann.

Damit richtet sich diese Meldung vorallem an Programmierer, die solche Funktionen nicht mehr verwenden sollten.

Im Fall der Funktionen

<|>ereg|>(), <|>ereg_replace|>(), <|>eregi_replace|>(), <|>eregi|>(), <|>split|>(), <|>spliti|>()

bedeutet es, dass PHP seit Version 5.3.0 die POSIX Erweiterung für reguläre Ausdrücke nicht mehr unterstützt. Als Ersatz dafür gibt es die PCRE Erweiterung, die auch schon in früheren Versionen vorhanden ist.

POSIX PCRE
ereg_replace() preg_replace()
ereg() preg_match()
eregi_replace() preg_replace()
eregi() preg_match()
split() preg_split()
spliti() preg_split()

Es reicht allerdings nicht aus, nur den Funktionsnamen auszutauschen, obwohl die Funktionen die gleiche Signatur haben.

Beispiel

<|>echo|> <|>ereg_replace|>("x", "a", "xyz"); // Ausgabe: ayz
// Deprecated: Function ereg_replace() is deprecated in /path/to/file.php on line X

Ein einfaches Austauschen der Funktionsnamen nach der obigen Tabelle würde folgende Warnung produzieren:

<|>echo|> <|>preg_replace|>("x", "a", "xyz");
// Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash on line X

In den PCRE (preg_....) Funktionen muss der reguläre Ausdruck, also das 1. Argument, von Begrenzerzeichen umgeben sein. Als Begrenzer sollte / , # oder ~ gewählt werden (theoretisch sind weitere möglich, diese 3 werden am häufigsten verwendet).

Eine korrekte Ersetzung wäre also:

<|>echo|> <|>preg_replace|>("/x/", "a", "xyz"); // Ausgabe: ayz
Persönliche Werkzeuge