str_ireplace

Case-insensitive version of str_replace

Description

stringarray str_ireplace(
    arraystring $search,
    arraystring $replace,
    stringarray $subject,
    int &$count = null
)

This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value.

To replace text based on a pattern rather than a fixed string, use preg_replace with the i pattern modifier.

Parameters

If search and replace are arrays, then str_ireplace takes a value from each array and uses them to search and replace on subject. If replace has fewer values than search, then an empty string is used for the rest of replacement values. If search is an array and replace is a string, then this replacement string is used for every value of search. The converse would not make sense, though.

If search or replace are arrays, their elements are processed first to last.

search

The value being searched for, otherwise known as the needle. An array may be used to designate multiple needles.

replace

The replacement value that replaces found search values. An array may be used to designate multiple replacements.

subject

The string or array being searched and replaced on, otherwise known as the haystack.

If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an array as well.

count

If passed, this will be set to the number of replacements performed.

Return Values

Returns a string or an array of replacements.

Changelog

Version Description
8.2.0 Case folding no longer depends on the locale set with setlocale. Only ASCII case folding will be done. Non-ASCII bytes will be compared by their byte value.

Examples

Example #1 str_ireplace example

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>

Notes

Note: This function is binary-safe.

Caution

Replacement order gotcha

Because str_ireplace replaces left to right, it might replace a previously inserted value when doing multiple replacements. Example #2 in the str_replace documentation demonstrates how this may affect you in practice.

See Also

  • str_replace
  • preg_replace
  • strtr