|
| |
Nachdem man mit ereg und eregi Daten aus Zeichenketten herausfiltern kann, lassen sich mit ereg_replace Daten ersetzen. Wie dies Funktioniert, soll im Folgenden erläutert werden. Hierzu wird allerdings das Verständniss der bisherigen Seiten der Regulären Ausdrücke, insbesondere ereg und eregi vorrausgesetzt. Zunächst sollte der Syntax für ereg_replace / eregi_replace klar werden: $Neue_Zeichenkette = ereg_replace("regex", "ersetzt", $Zeichenkette); $Neue_Zeichenkette = eregi_replace("regex", "ersetzt", $Zeichenkette); "regex" ist der reguläre Ausdruck wie er bereits aus ereg und eregi bekannt sein sollte. Neu ist jetzt die Zeichenkette "ersetzt". Der Inhalt wird später erläutert. Als letztes Argument ist die ursprüngliche "Zeichenkette" zu erwähnen, die zu durchsuchende Zeichenkette darstellt. Das zweite Argument ist die Zeichenkette die anstelle des gefundenen Strings tritt. So geben die folgenden Befehle immer PHP4 ist toll aus:
Das ist natürlich noch nicht so sehr praktisch, denn man kann nicht individuell auf das gefundene eingehen. Wenn z.B. im Text "php" (kleingeschrieben) steht, so wird PHP trotzdem großgeschrieben. Man müsste also auf die REGEX-Abfrage zugreifen können. Dies ist auch möglich. Denn wie bei ereg und eregi werden alle Ausdrücke die eingeklammert sind gespeichert. Um auf diese nun zuzugreifen, wird ein Doppel-Backslash \\ gefolgt von der Nummer des Treffers (von 1 bis 9) verwendet: echo eregi_replace("(PHP)[[:digit:]]?", "\\14", "PHP3 ist toll"); echo eregi_replace("(PHP)[[:digit:]]?", "\\14", "php3 ist toll"); In diesem Beispiel wird als erstes PHP4 ist toll und anschließend php4 ist toll ausgegeben. Dieses Schema lässt sich auf viele Anwendungsmöglichkeiten übertragen und es sind kaum Grenzen gesetzt. |
| ||