(PHP 5, PHP 7, PHP 8)
str_ireplace — Groß- und kleinschreibungsunabhängige Version von str_replace()
$search,$replace,$subject,&$count = null
Die Funktion gibt einen String oder ein Array zurück, in dem alle
Vorkommen von search innerhalb von
subject unabhängig von deren Groß- oder Kleinschreibung
gegen den entsprechenden replace-Wert ausgetauscht
wurden.
Um Text anhand eines Musters statt einer konkreten Zeichenkette zu
ersetzen, kann preg_replace() mit dem
Suchmuster-Modifikator
i verwendet werden.
Wenn search und replace
Arrays sind, nimmt str_ireplace() einen Wert von jedem
Array und sucht/ersetzt mit diesen im subject. Wenn
replace weniger Werte als
search besitzt, wird eine leere Zeichenkette für die
verbleibenden Ersetzungswerte verwendet. Wenn search
ein Array ist und replace eine Zeichenkette, wird
dieser Ersetzungswert für alle Werte des search
genutzt. Die Umkehrung jedoch wäre sinnlos.
Wenn search oder replace
Arrays sind, werden ihre Elemente in aufsteigender Reihenfolge bearbeitet.
searchDer gesuchte Wert, auch Nadel (needle) genannt. Ein Array kann genutzt werden, um mehrere Nadeln zu bestimmen.
replace
Der Ersetzungswert, der gefundene search
Werte ersetzt. Ein Array kann genutzt werden, um mehrere Nadeln zu
bestimmen.
subjectDie zu durchsuchende und darin ersetzende Zeichenkette oder das Array, auch Heuhaufen (haystack) genannt.
Ist subject ein Array, wird die
Suchen-Ersetzen-Funktionalität auf jedes Element von
subject angewendet. Die Funktion gibt dann
natürlich ein Array zurück.
countFalls übergeben, wird dies auf die Anzahl der durchgeführten Ersetzungen gesetzt.
Gibt eine Zeichenkette oder ein Array mit ersetzten Werten zurück.
| Version | Beschreibung |
|---|---|
| 8.2.0 | Die Groß- und Kleinschreibung hängt nicht mehr von der mit setlocale() eingestellten Locale ab. Es wird nur noch die Groß- und Kleinschreibung von ASCII-Bytes verglichen. Nicht-ASCII-Bytes werden nach ihrem Byte-Wert verglichen. |
Beispiel #1 str_ireplace()-Beispiel
<?php
$bodytag = str_ireplace("%body%", "schwarz", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>Hinweis: Diese Funktion ist binärsicher.
Da str_ireplace() von links nach rechts ersetzt, kann sie einen zuvor behandelten Wert ersetzen, falls mehrere Ersetzungen durchgeführt werden. Beispiel #2 in der Dokumentation von str_replace() zeigt die Auswirkungen in der Praxis.