str_replace
(PHP 3 >= 3.0.6, PHP 4, PHP 5)
str_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 より前のバージョンには、
search と replace
の両方に配列を指定した場合に発生する、
空のsearch添字をスキップする際に
replace配列上の内部ポインタを進めないという
バグがあります。
このバグは PHP 4.3.3 で修正されており、
このバグに基づくスクリプトは、この関数をコールする前に空の検索値を
削除しておく必要があります。
|
subject が配列の場合、
subject の各エントリについて検索と置換が行われ、
返り値は同様に配列となります。
search と replace
が配列の場合、str_replace() は各配列から値をひとつ取り出し、
subject 上で検索と置換を行うために使用します。
replace の値が
search よりも少ない場合、
置換される値の残りの部分には空の文字列が使用されます。
search が配列で
replace が文字列の場合、この置換文字列が
search の各値について使用されます。しかし、
逆は意味がありません。
search あるいは replace
が配列の場合は、配列の最初の要素から順に処理されます。
例 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);
// パラメータ count は PHP 5.0.0 で使用可能になりました $str = str_replace("ll", "", "good golly miss molly!", $count); echo $count; // 2
// 置換の順番を指定します $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);
?>
|
|
注意: この関数はバイナリデータに対応しています。
注意:
PHP 5.0.0 以降、一致して置換された対象文字列
(search) の数が、参照渡しされた
count に返されます。
PHP 5.0.0 より前のバージョンでは、このパラメータは利用できません。
str_ireplace()、
substr_replace()、
preg_replace() および
strtr()
も参照ください。