str_ireplace

Case-insensitive version of `str_replace`

&reftitle.description; ``string``array```str_ireplace` ``array``string```search` ``array``string```replace` ``string``array```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.

&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;
&strings.changelog.ascii-case-folding;

&reftitle.examples;

### `str_ireplace` example

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

&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`