関数・クラス解説

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

参考

  • str_replace() - 検索文字列に一致したすべての文字列を置換する
  • substr() - 文字列の一部分を返す
  • 文字列への文字単位のアクセスと修正
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール