str_ireplace

Case-insensitive version of `str_replace`.

&reftitle.description; `mixed` `str_ireplace` `mixed` `search` `mixed` `replace` `mixed` `subject` `int` `count`

This function returns a string or an array with all occurrences of `search` in `subject` (ignoring case) replaced with the given `replace` value. If you don't need fancy replacing rules, you should generally use this function instead of `preg_replace` with the `i` modifier.

&reftitle.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.

&reftitle.returnvalues;

Returns a string or an array of replacements.

&reftitle.changelog;

&Version; | &Description;
5.0.0 | The `count` parameter was added.

&reftitle.examples;

### `str_ireplace` example

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

&reftitle.notes; ¬e.bin-safe;

### 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.

&reftitle.seealso;

- `str_replace`
- `preg_replace`
- `strtr`