|
Durchsucht Zeichenkette nach Übereinstimmungen mit Suchmuster und ersetzt sie mit Ersatz.
Ersatz darf Referenzen in der Form \\n oder (seit PHP 4.0.4) $n enthalten, wobei Letztere vorzuziehen ist. Jede dieser Referenzen wird mit dem Text ersetzt, der vom n-ten eingeklammerten Suchmuster erfasst wurde. n kann einen Wert von 0 bis 99 haben. \\0 oder $0 beziehen sich auf den Text, der mit dem kompletten Suchmuster übereinstimmt. Um die Nummer des erfassenden Teil-Suchmusters zu erhalten, werden öffnende Klammern mit 1 beginnend von links nach rechts gezählt.
Wenn Sie mit einer Ersetzung arbeiten wollen, in der auf eine Rückreferenzierung direkt eine weitere Zahl folgt (d.h., direkt nach der Übereinstimmmung mit einem Suchmuster soll eine Zahl kommen), können Sie für Ihre Rückreferenzierung nicht die Schreibweise \\1 verwenden. So würde z.B. \\11 die Funktion preg_replace() verwirren, weil sie nicht weiß, ob Sie die Rückreferenzierung \\1 gefolgt von der Zahl 1 wollen oder nur die Rückreferenzierung \\11. In diesem Fall ist die Lösung, \${1}1 zu verwenden. Damit wird eine isolierte Rückreferenzierung $1 erzeugt und die 1 bleibt ein Zahlensymbol.
Falls Zeichenkette ein Array ist, wird das Suchen und Ersetzen auf jedes Element von Zeichenkette angewandt und der Rückgabewert ist ebenfalls ein Array.
Mit dem Modifikator e wird der Parameter Ersatz nach den entsprechenden Ersetzungen der Referenzen von preg_replace() wie PHP-Code behandelt. Tipp: Stellen Sie sicher, dass Ersatz gültigen PHP-Code erzeugt, weil sich PHP sonst über einen Syntaxfehler (parse error) in der Zeile beschwert, die den Aufruf von preg_replace() enthält.
Das Muster, nach dem gesucht wird. Es kann entweder eine Zeichenkette oder ein Array mit Zeichenketten sein.
Die Zeichenkette oder das Array mit Zeichenketten zum Ersetzen. Falls dieser Parameter eine Zeichenkette ist und der Parameter Suchmuster ein Array, werden alle Suchmuster durch diese Zeichenkette ersetzt. Falls sowohl Suchmuster als auch Ersatz Arrays sind, wird jedes Suchmuster durch das Gegenstück aus Ersatz ersetzt. Wenn das Ersatz-Array weniger Elemente hat als das Suchmuster-Array, werden die überzähligen Suchmuster durch die leere Zeichenkette ersetzt.
Die Zeichenkette oder ein Array mit Zeichenketten zum Durchsuchen.
Die maximal mögliche Anzahl von Ersetzungen für jedes Suchmuster in jeder Zeichenkette. Standardmäßiger Wert: -1 (kein Limit).
Falls angegeben, bekommt diese Variable die Anzahl der vorgenommenen Ersetzungen.
preg_replace() gibt ein Array zurück, falls Zeichenkette ein Array ist, andernfalls eine Zeichenkette.
Falls Übereinstimmungen gefunden wurden, wird die neue Zeichenkette zurückgegeben, andernfalls wird Zeichenkette unverändert zurückgegeben.
Beispiel 2. Die Verwendung von Rückreferenzierungen mit darauf folgenden numerischen Literalen
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Beispiel 3. Die Verwendung von preg_replace() mit indizierten Arrays
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Wenn wir Suchmuster und Ersetzungen mit ksort() sortieren, sollten wir bekommen was wir wollten.
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Beispiel 4. Ersetzen mehrerer Werte
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Anmerkung: Bei Verwendung von Arrays für Suchmuster und Ersatz werden die Schlüssel in der Reihenfolge bearbeitet, in der sie im Array vorliegen. Das ist nicht notwendigerweise dieselbe, wie die numerische Reihenfolge der Indizes. Wenn Sie Indizes verwenden, um festzulegen welches Suchmuster durch welchen Ersatz ersetzt werden soll, sollten Sie vor dem Aufruf von preg_replace() ksort() auf jedes Array anwenden.
Zurück | Zum Anfang | Weiter |
preg_replace_callback | Nach oben | preg_split |
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:57:21