substr_replace-文字列関数

substr_replace関数は文字列の一部をを置換する関数です。以下に使用例を示します。
//substr_replace("文字列", "置換えする文字列", "開始位置");

$str = "PHP&PHP";
$str = substr_replace($str, "CGI", 4);

$str1 = substr_replace("PHP&PHP", "CGI", 0); //?

echo $str."<br />";
echo $str1;
1番目の引数には置き換えたい文字列を指定し、2番目の引数には置換えに使用する文字列を指定します。 3番目の引数には開始位置を指定します。 上の例では変数strを文字列に指定し、置き換え文字列に"CGI"、開始位置に4を指定しています。 したがって、変数strの"PHP&PHP"の4文字目以降が"CGI"に置き換えられ、 PHP&CGI がsubstr_replace関数によって返されます。

?では変数strを文字列に指定し、置き換え文字列に"CGI"、開始位置に0を指定しています。
開始位置に0を指定すると指定した文字列が指定した置き換え文字列に置き換えられます。この場合、 CGI に置き換えられます。

substr_replaceでオプションlengthを指定

引数オプションのlengthを指定することで置き換えする長さを指定することが可能です。
以下に例を示します。
$str = "PHP&PHP";
$str = substr_replace($str, "CGI", 0, -4); //?

$str1 = substr_replace("&PHP", "CGI", 0, 0); //?

echo $str."<br />";
echo $str1;
?はlengthに-4を指定しています。この場合は置換え停止位置を文字列の終端から4番目にするということになります。 開始位置は0、停止位置は-4、したがって、"PHP&PHP"の終端から4番目の"&"の前の文字列を置き換えするということになり、  CGI&PHP が返されます。

?はlengthに0を指定しています。これは何も置き換えしないことを意味します。置換えはされずに置換え文字列が指定した文字列に追加されるということになります。 この場合、開始位置に0を指定しているので、文字列の先頭に"CGI"が追加され、 CGI&PHP が返されます。