関数・クラス解説
substr_replace
version:PHP 4, PHP 5, PHP 7 (公式)文字列の一部を置換する
公式リファレンス
書式
substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) : mixed
説明
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 が配列の場合、配列が返されます。
注意
注意: この関数はバイナリデータに対応しています。
サンプル
例1 シンプルな substr_replace() の例
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var
\n";
/* 以下の2つの例は、全ての $var で 'bob' で置換します。 */
echo substr_replace($var, 'bob', 0) . "
\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "
\n";
/* $var の先頭に 'bob' を挿入します */
echo substr_replace($var, 'bob', 0, 0) . "
\n";
/* 次の2つの例は、$var の 'MNRPQR' を 'bob'で置換します */
echo substr_replace($var, 'bob', 10, -1) . "
\n";
echo substr_replace($var, 'bob', -7, -1) . "
\n";
/* $var から 'MNRPQR' を削除します */
echo substr_replace($var, '', 10, -1) . "
\n";
例2 substr_replace() で複数の文字列を一度に置換する例
$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
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール