str_repeat
str_rot13
String 関数
PHP Manual

# str_replace

(PHP 4, PHP 5)

str_replace — 検索文字列に一致したすべての文字列を置換する

### 説明

mixed str_replace ( mixed `$search` , mixed `$replace` , mixed `$subject` [, int `&$count` ] )

この関数は、`subject` の中の `search` を全て `replace` に置換します。

(正規表現のような) 技巧的な置換ルールを必要としない場合、 preg_replace() の代わりにこの関数を常用するべきです。

### パラメータ

`search` と `replace` が配列の場合、 str_replace() は各配列から値をひとつ取り出し、 `subject` 上で検索と置換を行うために使用します。 `replace` の値が `search` よりも少ない場合、 置換される値の残りの部分には空の文字列が使用されます。 `search` が配列で `replace` が文字列の場合、この置換文字列が `search` の各値について使用されます。しかし、 逆は意味がありません。

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

`search`

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

`replace`

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

`subject`

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

  `subject` が配列の場合、 `subject` の各エントリについて検索と置換が行われ、 返り値は同様に配列となります。

`count`

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

### 返り値

この関数は、置換後の文字列あるいは配列を返します。

### 変更履歴

バージョン | 説明
--- | ---
5.0.0 | `count` パラメータが追加されました。
4.3.3 | この関数の挙動がかわりました。以前のバージョンにはバグがあり、 `search` と `replace` の両方に配列を指定した場合に、 空の `search` 添字をスキップしても `replace` 配列上の内部ポインタが進みませんでした。 このバグは PHP 4.3.3 で修正されたので、このバグを前提としたスクリプトは、 この関数をコールする前に空の検索値を削除しておく必要があります。
4.0.5 | ほとんどのパラメータに配列を渡せるようになりました。

### 例

例1 基本的な str_replace() の例

`<?php
// <body text='black'> となります
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// Hll Wrld f PHP となります
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// You should eat pizza, beer, and ice cream every day となります
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// 2 となります
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>`

例2 str_replace() に関するちょっとした事実

`<?php
// 置換の順番を指定します
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// まず最初に \r\n を置換するので、二重に変換されることはありません
$newstr = str_replace($order, $replace, $str);
// 出力は F となります。A が B に、そして B が C に、そして……
// 最終的に E が F に置換されるからです。置換は左から右へと順に行われます
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// 出力は apearpearle pear となります
// 上で説明したのと同じ理由です
$letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>`

### 注意

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

警告

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

str_replace() は左から右へと置換を行うので、 複数の置換を行うときには、前に追加された値を置換する可能性もあります。 このドキュメントのサンプルを参照ください。

> 注意:

> この関数は大文字小文字を区別します。区別せずに置換するには str_ireplace() を使用します。

### 参考

- str_ireplace() - 大文字小文字を区別しない str_replace
- substr_replace() - 文字列の一部を置換する
- preg_replace() - 正規表現検索および置換を行う
- strtr() - 文字の変換あるいは部分文字列の置換を行う

str_repeat
str_rot13
String 関数
PHP Manual