PHPプログラミング

最終更新日:
公開日:

レシピ

文字列

文字列を置き換える

str_replace関数を使って、テキストの一部を置き換える方法について解説します。

この記事のポイント

  • 簡単な文字列の置き換えなら正規表現よりstr_replace関数の方がシンプルで速い
  • いくつ文字列を置き換えたか数を取得することもできる

任意の文字コードに変換する

str_replace関数は、次のように指定した文字コード(文字エンコーディング)への変換を行う関数です。

コード例

str_replace( "置き換え前のテキスト", "置き換え後のテキスト", $str);

上記のコードでは、$strに格納されている文字列から「置き換え前のテキスト」を検索し、もし見つかったら「置き換え後のテキスト」に置き換えます。

コード例

$str1 = "文字列の置き換えテスト";
$str2 = null;
$count = 0;

$str2 = str_replace( "置き換え", "置換", $str1, $count);

こちらのコードの場合は、$str1には「文字列の置き換えテスト」が入っていますが、$str2には「文字列の置換テスト」が入ります。

さらに、第4パラメータに変数を渡すと置き換えた回数が格納されます。
上記コードでは$countに置き換えた回数「1」が入ります。

コード例

$str1 = "cat is cat. cat play a trick. but so pretty";
$str2 = null;

$str2 = str_replace( "cat", "dog", $str1, $count);
var_dump($count);

出力例

string(43) "dog is dog. dog play a trick. but so pretty"
int(3)

上の「dog is…」が置き換えた後の文字列($str2)、下の「3」は置き換えた回数($count)です。
また、複数の置換を行いたい場合は配列形式で指定することもできます。

コード例

$str1 = "cat is cat. cat play a trick. but so pretty";

// 検索する文字列
$from = array( "cat", "is");

// 置き換える文字列
$to = array( "dogs", "are");

// 置き換えを実行
$str2 = str_replace( $from, $to, $str1, $count);