substr_replace
(PHP 4, PHP 5)
substr_replace — 文字列の一部を置換する
説明
substr_replace()は、文字列
stringの start および
(オプションの) length パラメータで区切られた部分を
replacement で指定した文字列に置換します。
パラメータ
-
string -
入力文字列。
文字列の配列を指定することもでき、各文字列について順に置換を行います。 この場合、他のパラメータ
replacement、startおよびlengthがスカラ値なら それを各入力文字列に順次適用し、配列なら各入力文字列に対応する要素の値を適用します。 -
replacement -
置換する文字列。
-
start -
startが正の場合、置換はstringでstart番目の文字から始まります。startが負の場合、置換はstringの終端からstart番目の文字から始まります。 -
length -
正の値を指定した場合、
stringの置換される部分の長さを表します。 負の場合、置換を停止する位置がstringの終端から何文字目であるかを表します。このパラメータが省略された場合、 デフォルト値は strlen(string)、すなわち、stringの終端まで置換することになります。 当然、もしlengthがゼロだったら、 この関数はstringの最初からstartの位置にreplacementを挿入するということになります。
返り値
結果の文字列を返します。もし、string
が配列の場合、配列が返されます。
変更履歴
| バージョン | 説明 |
|---|---|
| 4.3.3 | すべてのパラメータに配列を指定できるようになりました。 |
例
例1 シンプルな substr_replace() の例
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";
/* 以下の2つの例は、全ての $var で 'bob' で置換します。 */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
/* $var の先頭に 'bob' を挿入します */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
/* 次の2つの例は、$var の 'MNRPQR' を 'bob'で置換します */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
/* $var から 'MNRPQR' を削除します */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>
例2 substr_replace() で複数の文字列を一度に置換する例
<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');
// シンプルなケース: 各文字列の XXX を YYY で置換します
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";
// より複雑で、各文字列で置換する値が異なるケース
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";
// 置換する文字数が異なるケース
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>
上の例の出力は以下となります。
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
注意
注意: この関数はバイナリデータに対応しています。