大文字小文字を区別しない str_replace

# str_ireplace

(PHP 5, PHP 7, PHP 8)

str_ireplace — 大文字小文字を区別しない str_replace()

### 説明

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

この関数は、`subject` の中に現れるすべての `search`(大文字小文字を区別しない)を `replace` に置き換えた文字列あるいは配列を返します。

固定の文字列ではなく、パターンベースでテキストを置換したい場合、 preg_replace() 関数を パターン修飾子 `i` と一緒に使ってください。

### パラメータ

`search` および `replace` が配列の場合は、 str_ireplace() はそれぞれの配列から取り出した 値を使用して `subject` の置換を行います。 `replace` の要素数が `search` より少ない場合は、残りの要素は 空の文字列に置き換えられます。もし `search` が配列で `replace` が文字列だった場合は すべての `search` が同じ文字列に置き換えられます。 しかし、逆は意味がありません。

`search` あるいは `replace` が配列の場合は、配列の最初の要素から順に処理されます。

`search`

  探したい値。needle (針) と呼ばれることもあります。 配列を使えば、複数の値を指定することもできます。

`replace`

  見つかった `search` を置き換える値。 配列を使えば、複数の値を指定することもできます。

`subject`

  検索・置換の対象となる文字列あるいは配列。 haystack (干し草の山) と呼ばれることもあります。

  `subject` が配列の場合は、そのすべての要素に 対して検索と置換が行われ、返される結果も配列となります。

`count`

  指定した場合は、マッチして置換が行われた箇所の個数がここに格納されます。

### 戻り値

置換した文字列あるいは配列を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.2.0 | ケースフォールディングは、setlocale() で設定されたロケールに依存しなくなりました。 ASCII のケースフォールディングのみが行われます。 ASCII でないバイト列は、バイト値として比較されます。

### 例

例1 str_ireplace() の例

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

### 注意

> 注意: この関数はバイナリデータに対応しています。

警告

# 置換の順番に関するメモ

str_ireplace() は左から右へと置換を行うので、 複数の置換を行うときには、前に追加された値を置換する可能性もあります。 str_replace() のドキュメントにある 2 番目の例が、これが及ぼす影響の実例です。

### 参考

- str_replace() - 検索文字列に一致したすべての文字列を置換する
- preg_replace() - 正規表現検索および置換を行う
- strtr() - 文字の変換あるいは部分文字列の置換を行う

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