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.
Suchmuster
Das Muster, nach dem gesucht wird. Es kann entweder eine Zeichenkette oder ein Array mit Zeichenketten sein.
Ersatz
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, wird jedes überzählige
Suchmuster
durch die leere Zeichenkette ersetzt.
Zeichenkette
Die Zeichenkette oder ein Array mit Zeichenketten zum Durchsuchen.
Limit
Die maximal mögliche Anzahl von Ersetzungen für jedes Suchmuster in
jeder Zeichenkette
. Standardmäßiger Wert:
-1 (kein Limit).
Anzahl
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 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 3. Ersetzen mehrerer Werte
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
|
Anmerkung: Bei Verwendung von Arrays für
Suchmuster
undErsatz
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 welchesSuchmuster
durch welchenErsatz
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 |