PHPの学習を始めたばかりだと、
PHPで文字列をどうやって置換したらいいんだろう?
と悩むこともあるのではないでしょうか。
そこで今回はPHPで文字列を置換する方法について
・str_replaceを使う方法
・preg_replaceを使う方法
・str_ireplaceを使う方法
をご紹介します。
それぞれ動作が異なるので、場面にあった方法を使ってみてくださいね。
文字列を検索して置換する【str_replace】
str_replaceは、文字列内の指定した部分を他の文字列へと置き換える時に使います。str_replaceは以下のように記述します。
str_replace ( $search, $replace , $subject [, $count ] );
$search | 検索する文字列を指定する。配列での指定も可能。 |
---|---|
$replace | 置換後の文字列を指定する。配列での指定も可能。 |
$subject | 検索・置換の対象となる文字列または配列を指定する。配列で指定すると、返り値も配列となる。 |
$count(省略可能) | 置換が行われた箇所の個数が格納される。 |
それでは、実際にどのように動くか見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 検索・置換の対象となる文字列を指定 $subject = "プログラミングの勉強をする"; // 検索する文字列を指定 $search = "プログラミング"; // 置換する文字列を指定 $replace = "HTML"; // str_replace関数で検索・置換する $result = str_replace( $search, $replace, $subject ); // 結果を出力する echo $result; |
出力結果
HTMLの勉強をする
「検索したい文字列」「置換後の文字列」「検索・置換の対象となる文字列」という順番で指定することで、文字列を置換することができます。
正規表現を用いて文字列を置換する【preg_replace】
preg_replaceは、指定した正規表現にマッチした文字列の置換を行います。preg_replaceは以下のように記述します。
preg_replace( $pattern, $replacement, $subject, $limit, $count );
$pattern | 検索を行う正規表現のパターンを指定する。配列での指定も可能。 |
---|---|
$replacement | 置換後の文字列を指定する。配列での指定も可能。 |
$subject | 検索・置換の対象となる文字列を指定する。配列での指定も可能。配列で指定した場合は、返り値も配列となる。 |
$limit(省略可能) | 置換を行う最大回数を指定する。デフォルトの値は-1(制限無し)。 |
$count(省略可能) | 置換が行われた箇所の個数が格納される。 |
それでは、実際にどのように動くか見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 検索・置換の対象となる文字列 $subject = "「PHP」とは何か?"; // 検索する正規表現のパターン(以下の例は「」で囲まれている文字列を検索している) $pattern = "/「.+?」/"; // 置換する文字列 $replacement = "「JavaScript」"; // preg_replace関数で検索・置換 $result = preg_replace( $pattern, $replacement, $subject ); // 結果を出力 echo $result; |
出力結果
「JavaScript」とは何か?
「検索を行う正規表現のパターン」「置換後の文字列」「検索・置換の対象となる文字列」の順番で指定することで、文字列を置換することができます。
大文字・小文字を区別せずに置換する【str_ireplace】
str_ireplaceは、大文字・小文字を区別しないで置換する時に使います。
指定する値の順番は、str_replaceと同じです。実際にどのように動くか見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 検索・置換の対象となる文字列 $subject = 'HTML・CSS・JavaScript'; // 検索する文字列 $search = "javascript"; // 置換する文字列 $replace = "PHP"; //str_replace関数で検索・置換 echo str_replace($search, $replace, $subject); //str_ireplaceの場合 echo str_ireplace($search, $replace, $subject); |
str_replaceの出力結果
HTML・CSS・JavaScript
str_ireplaceの出力結果
HTML・CSS・PHP
このように、str_ireplaceを使うと大文字・小文字を区別せずに文字列を置換することができます。
まとめ
以上、PHPで文字列を置換する方法について、
・str_replaceを使って文字列を検索して置換する
・preg_replaceを使って正規表現を用いて文字列を置換する
・str_ireplaceを使って大文字・小文字を区別せずに置換する
をご紹介しました。
文字列を置換する方法がわからない時は、ぜひ参考にしてみてくださいね!