(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.
search
Der 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.
subject
Die 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.
count
Falls ü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.