【PHP・文字列関数】文字列を置き換える関数の使い方

アイキャッチ画像おきかえ PHP
PHP
この記事は約5分で読めます。
Recommended Articles

【PHP・文字列関数】文字列を置き換える関数の使い方

違いは以下の通りです。

関数相違点戻り値
str_replace置き換え前後の文字列を指定する置き換え後の文字列
strtr同じ長さ分の文字列が処理される置き換え後の文字列
substr_replace文字列の一部を置き換える置き換え後の文字列

str_replace関数の使い方(文字列を置き換える)

php3.0.6~ で使用できます。

str_replace関数 : 書式
書式:
 str_replace(,, ③ [,
])

引数:

 ①置き換え前の文字列
 ②置き換え後の文字列
 ③処理する文字列
 ④指定した変数に置き換え回数が返される(省略化)

戻り値:
 置き換え後の文字列または配列
 str_replace関数は文字列に含まれる特定の文字列を置き換えます。引数を配列で指定した場合は、最初の要素からひとつづつ対応させて置き換えられます。「\n」を「<br>」に置き換えたり、「\n」を「/」に置き換えるなど様々な使い方ができます。「&lt;」を「<」に置き換えるようなhtmlentitiles関数やhtmlspecialchars関数●の逆の処理もよく使われます。

置き換え後の文字列に「""」を指定することで、削除する用途で使うこともできます。

str_replace関数 : 使用例
  • 文字列を置き換える
    echo str_replace("A", "4", "123A5"); →「12345」を出力
    echo str_replace("abc", "000", "abc123"); →「000123」を出力
  • HTMLエンティティをデコードする
    $str = "&lt;mytaggr;";
    $str = str_replace(array("&lt", "&gt"), array("<", ">"), $str);

    変数 $str にセットされる値 → <mytag>

  • 文字列に含まれる全角スペース・半角スペースを削除する
    $Str = "1 2 3 4 5";
    echo str_replace(array(" "," "), "", $str); →「12345」を出力

    <解説>
     str_replace関数の第2引数に空文字を指定して、文字列に含まれる空白を削除する使用例です。空白には半角スペース、全角スペースがあるので削除対象の文字としてまとめて配列で指定しています。

処理対象の文字列を配列で指定すると、1度にまとめて処理できます。

strtr関数の使い方(文字列を置き換える)

php3~ で使用できます。

strtr関数 : 書式
書式1:
 strtr(,,
)

書式2:
 strtr(, )

引数:
 ①処理対象の文字列
 ②置き換え前の文字列
 ③置き換え後の文字列
 ④置き換え内容をセットした配列

戻り値:
 置き換えられた文字列

 strtr関数は文字列を置き換えます。置き換え前後の文字列は配列で指定することもできます。文字列で指定された場合は、同じ長さ分の文字列が処理され、一方より長い部分は無視されます。
strtr関数 : 使用例
  • 文字列を置き換える
    $str = "010203";
    echo strtr($str, "01", "xx"); →「xxx2x3」を出力
  • 置き換え内容を配列で指定して文字列を置き換える
    $str = "ABC123";
    echo strtr($str, array("A"=>"X", "1"=>"9")); →「Xbc923」を出力

substr_replace関数の使い方(文字列の一部置き換える)

php4~ で使用できます。

substr_replace関数 : 書式
書式:
 substr_replace(,, ③[, ④])

引数:

 ①文字列
 ②置き換え後の文字列
 ③置き換え開始位置
 ④置き換える部分のサイズ(省略化)

戻り値:
 置き換え後の文字列

substr_replace関数は文字列の一部を置き換えます。第3、第4引数でどの部分を置き換えるかの位置を指定し、第2引数で置き換え後の文字列を指定します。第4引数を省略すると、指定位置以降の文字列すべてが対象となります。

substr_replace関数 : 使用例
  • 文字列の一部を置き換える
    $str = "123456789";
    echo substr_replace($str, "x", 5); →「12345x」を出力

    <解説>
     第4引数が省略されているため、6番目の文字以降の「6789」が「x」に置き換えられます。

  • 指定位置の文字を置き換える
    $str = "123-789-456";
    echo substr_replace($str, "xxx", 4, 3); →「123-xxx-456」を出力

    <解説>
     4文字目から3桁分の「789」が「xxx」で置き換えられます。

関連リンク

PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。
Recommended Articles