(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-Modifikatori
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.