PHPのreplace関数で文字列の置換をする方法【初心者向け】

プログラミング初心者向けにreplace関数で文字列の置換を行う方法について解説しています。str_replaceを使うと指定した文字列を他の文字列に置き換えることができます。いざという時に便利なので、ぜひコードを書けるようになりましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

replace関数の使い方を解説していきます。

文章中のある語句を他の文字列に置き換えたい場合に便利ですので、ぜひ書き方を覚えておきましょう。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

大石ゆかり

田島メンター!ワードやテキストエディタで置き換えを良く使うんですが、PHPにも特定の文字を別の文字に置き換えるような関数はありますか?

田島悠介

それが今回紹介するstr_replace関数なんだ。

大石ゆかり

指定した文字列の中の、特定の文字を置き換えてくれるって感じですか?

田島悠介

そうだね。複数の条件を指定したり出来るんだけど、まずはstr_replace関数の書き方などを見てみよう!

 

replace関数とは

str_replaceは文字列内の指定した部分を他の文字列に置き換えるときに使用する関数です。

文字列の中から置き換えたい部分と置き換え後の文字列を指定し、その箇所を置き換え後のものに変更します。

 

replaceの書き方

str_replaceは以下のように記述します。

str_replace("検索を行う文字列","置き換えを行う文字列","対象の文字列");

「検索を行う文字列」「置き換えを行う文字列」「対象の文字列(または配列)」の3つを順番に指定します。
それぞれの内容は以下の通りです。

検索を行う文字列:別のものに置き換えたい部分の文字列を入力します。
置き換え後の文字列:置き換えた後の文字列を入力します。
対象の文字列:置き換えの処理を行う文字列(全体)です。

 

また、4つ目の要素に変数を入れるとstr_replaceの処理が何回行われたかという数字を格納することができます。

<!DOCTYPE html>
<html>
  <head>
    <meta charset=”utf-8″ />
  </head>
  <body>
    <?php
      $str = "文字列1<br />文字列2<br />文字列3<br />";
        echo $str;
      $str = str_replace("文字列", "置き換え後", $str,$n);
        echo $str;
        echo $n."回置き換えました";
    ?>
  </body>
</html>

str_replaceによる置き換えの処理は3回行われているため$nの値は”3″となります。

画面ではこのように表示されます。この4つ目の要素は省略が可能です。

php_rep_3

 

大石ゆかり

文字列が置き換え後に変換されてますね。置き換えた回数もわかるんですねー。

田島悠介

掲示板とか他のユーザーからの投稿の改行文字をbrタグに置き換えた場合とか、置き換え回数が多い場合警告を発するという使い方もいいね。

 

[PR] PHPのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

str_replace関数を使用して実際に文字の置き換えを行います。

変数の場合

変数に格納された文字列の中から、対象の部分を別のものに変更した場合の例です。

<!DOCTYPE html>
<html>
  <head>
    <meta charset=”utf-8″ />
  </head>
  <body>
    <?php
      $str = "I have a pen";
        echo $str;
        echo "<br />";
      $str = str_replace("pen", "pineapple", $str);
        echo $str;
        echo $n;
    ?>
  </body>
</html>

ここでは「対象の文字列」$strを一度画面に出力し、その$strの中から「検索を行う文字列」に指定したpenの部分を「置き換え後の文字列」pineappleに置き換え、その後もう一度画面に出力しています。

画面では以下のようになります。上が置き換え前、下がstr_replaceで文字列の置き換えを行った後の文字列です。

php_rep_1

 

配列の場合

文字列の置き換えは、配列に対しても行うことができます。

<!DOCTYPE html>
<html>
  <head>
    <meta charset=”utf-8″ />
  </head>
  <body>
    <?php
      $word = array ("文字列1","文字列2","文字列3",);
      print_r($word);
      echo "<br />";
      $word = str_replace("文字列", "置き換え後", $word);
      print_r($word);
      echo $n;
    ?>
  </body>
</html>

ここでは「対象の文字列」の部分に配列$wordを指定し、その要素の中の文字列の部分を置き換え後に変更します。

画面では以下のようになります。先ほどと同様に上が置き換え前、下がstr_replaceで文字列の置き換えを行った後の文字列です。

php_rep_2

 

おわりに

文字列の置換を行う方法について解説しました。

 

大石ゆかり

ベースになる変換対象の文字列のところに、配列も指定できるんですねー。配列の中の文字列という文字が、置き換え後という文字に変わってますね。

田島悠介

そうなんだ。後、置き換え対象の文字にも配列を指定出来たりするんだよ。

大石ゆかり

この文字とあの文字があった場合、ある文字に置き換えるってことが出来るんですね。

田島悠介

そうそう。色んな改行文字を配列で指定して、brタグに置き換えることなどに使われているね。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。