Case-insensitive version of str_replace

# str_ireplace

(PHP 5, PHP 7, PHP 8)

str_ireplace — Case-insensitive version of str_replace()

### Description

str_ireplace(
array|string `$search`,
array|string `$replace`,
string|array `$subject`,
int `&$count` = `null`
): string|array

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() - Replace all occurrences of the search string with the replacement string
- preg_replace() - Perform a regular expression search and replace
- strtr() - Translate characters or replace substrings

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open