str_replace

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

str_replace --  文字列 subject 中の文字列 search を全て文字列replaceに置換する

説明

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

この関数は、subject の中の search を全て replace に置換します。(正規表現んような)技巧的な置換ルールを 必要としない場合、ereg_replace() または preg_replace()の替わりにこの関数を常用するべきです。

PHP 4.0.5以降、str_replace()の全てのパラメータを 配列(array)とすることが可能です。

警告

PHP 4.3.3より前のバージョンには、 searchreplaceの 両方に配列を指定した場合に発生する、 空のsearch添字をスキップする際に replace配列上の内部ポインタを進めないという バグがあります。 このバグは、PHP 4.3.3で修正されており、 このバグに基づくスクリプトは、空の検索値をこの関数をコールする前に 削除しておく必要があります。

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

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

例 1. str_replace()の例

<?php
// Provides: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Provides: 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);

// Use of the count parameter is available as of PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo
$count; // 2
?>

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

注意: PHP 5.0.0以降、一致および置換された対象文字列 (search)の数が参照渡しされた countに返されます。 PHP 5.0.0より前のバージョンでは、このパラメータは利用できません。

str_ireplace(), substr_replace(), ereg_replace(), preg_replace(), strtr() も参照下さい。