最終更新日:
公開日:
レシピ
文字列
文字列を置き換える
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);