str_ireplace

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

説明

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

この関数は、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