【PHP入門】str_replaceで文字列を置換する方法を解説

プログラミング言語の辞書

str_replace関数は特定の文字列を別の文字列で置換する際に便利な機能です。

本記事では、初心者向けにstr_replace関数の基本的な使い方から具体的なサンプルコードまで詳しく解説します。

PHP|str_replaceとは?

str_replace関数は、指定した文字列のうち最初に見つかったものを、別の文字列に置換します。文字列置換の際には、元の文字列に影響を与えずに特定の文字列を効率的に変更することが可能です。

PHP|str_replaceの基本的な書き方

str_replace関数を使用することで、指定した文字列の中から特定の部分を別の文字列で置換することができます。基本的な書き方は以下の通りです。

str_replace($search, $replace, $subject);

この中で、それぞれのパラメータの意味と使い方を詳しく見ていきましょう。

  1. $search: 置換したい文字列を指定します。
    このパラメータには、置換したい文字列や文字列の一部を指定します。例えば、置換したい文字列が「こんにちは」であれば、この変数に「こんにちは」と指定します。
  2. $replace: 置換後の文字列を指定します。
    $searchで指定した文字列が見つかった場合に、それを何で置換するかを指定します。例えば、置換後の文字列が「Hello」であれば、この変数に「Hello」と指定します。
  3. $subject: 置換を行いたい対象の文字列を指定します。
    この変数には、実際に置換を行いたい元の文字列を指定します。置換対象となるテキストが格納されている変数や、直接文字列を指定することができます。

    str_replace関数は、指定した文字列の中で最初に見つかった部分だけが置換されます。つまり、複数の場所で同じ文字列が出現している場合でも、最初に見つかった部分のみが置換されることに注意してください。

    以下は、具体的な例を交えてstr_replace関数の使い方を示します。

    <?php
    $original_string = "こんにちは、世界!こんにちは、皆さん!";
    $search = "こんにちは";
    $replace = "Hello";
    
    $result = str_replace($search, $replace, $original_string);
    echo $result;
    ?>

    上記のコードを実行すると、元の文字列「こんにちは、世界!こんにちは、皆さん!」の中から最初に見つかった「こんにちは」が「Hello」に置換され、「Hello、世界!こんにちは、皆さん!」が表示されます。

    これで、str_replace関数の基本的な使い方について理解できました。この関数をうまく活用することで、文字列の置換処理を簡潔かつ効率的に行うことができます。ぜひ、実際にPHPのプログラムで活用してみてください。

    PHP|str_replaceを使用したサンプルコード

    シチュエーション: ユーザーからの入力を整形する

    ユーザーが入力したテキストに含まれる特定の文字列を、表示や保存などの用途に合わせて別の文字列に置換する場合があります。例えば、ユーザーが入力した内容に含まれる改行文字を<br>タグに置換して、改行をHTMLで正しく表示する必要があるとします。

    以下のサンプルコードでは、ユーザーが入力したテキストの改行文字を<br>タグに置換して表示する例を示します。

    <?php
    // ユーザーが入力したテキスト(例:フォームなどから受け取ったデータ)
    $user_input = "これはテスト文です。\n改行を含んでいます。\n改行を<br>タグに置換します。";
    
    // 改行文字を<br>タグに置換する
    $formatted_text = str_replace("\n", "<br>", $user_input);
    
    // 結果を出力する
    echo $formatted_text;
    ?>

    上記のコードを実行すると、ユーザーが入力したテキストの改行文字(\n)が<br>タグに置換され、以下のような結果が表示されます。

    これはテスト文です。<br>改行を含んでいます。<br>改行を<br>タグに置換します。

    このように、str_replace関数を活用することで、ユーザーからの入力を必要な形式に整形することができます。このようなシチュエーションでは、ユーザーの入力に対して適切な文字列置換を行うことで、情報の正しい表示や保存などの処理が行えるようになります。

    str_replace以外での置換

    PHPには、str_replace以外にも文字列を置換するためのさまざまな関数が用意されています。

    それぞれの関数には異なる特性や機能があり、適切な場面で適切な関数を選択することが重要です。以下では、代表的な文字列置換関数について説明します。

    str_ireplace関数

    str_ireplace関数は、str_replaceとほぼ同じ動作をする関数ですが、大文字と小文字を区別せずに置換を行います。つまり、検索する際に大文字と小文字を区別せずに置換したい文字列を検索することができます。

    $original_string = "Hello, World!";
    $search = "world";
    $replace = "Universe";
    
    $result = str_ireplace($search, $replace, $original_string);
    echo $result;
    // 出力: Hello, Universe!

    str_replaceの配列バージョン

    str_replace関数は、第1引数と第2引数に文字列を渡すことで置換を行いますが、第1引数と第2引数に配列を渡すこともできます。これにより、複数の文字列を一括で別の文字列に置換することができます。

    $original_string = "りんごとオレンジとバナナ";
    $search = array("りんご", "オレンジ", "バナナ");
    $replace = array("Apple", "Orange", "Banana");
    
    $result = str_replace($search, $replace, $original_string);
    echo $result;
    // 出力: AppleとOrangeとBanana

    preg_replace関数

    preg_replace関数は、正規表現を使用して置換を行います。

    正規表現を使うことで、より柔軟な置換が可能になります。例えば、特定のパターンに一致する文字列だけを置換したり、特定の文字列の前後に追加の文字を挿入したりすることができます。

    $original_string = "apple1 orange2 apple3 banana4";
    $pattern = "/apple(\d+)/";
    $replace = "Apple$1";
    
    $result = preg_replace($pattern, $replace, $original_string);
    echo $result;
    // 出力: Apple1 orange2 Apple3 banana4

    これらの関数は、str_replace関数と比べてより高度な文字列置換が必要な場合や特定の条件に基づいて置換を行いたい場合に役立ちます。適切な関数を選択して、効率的な文字列置換を行いましょう。

    まとめ

    本記事では、PHPのstr_replace関数を使った文字列置換の方法について解説しました。

    str_replace関数は、指定した文字列の中から最初に見つかった部分だけを置換する便利な機能です。文字列の整形や特定の文字列の置換など、さまざまな用途で活用できます。さらに、str_replace以外にもstr_ireplace関数やpreg_replace関数などがあり、より高度な置換が必要な場面ではこれらの関数を検討することが重要です。

    PHPの学習を進める上で、文字列操作の基礎を押さえることは非常に重要ですので、ぜひ積極的に活用してください。

    挫折することなくエンジニアを目指すなら

    独学?スクール?

    これからHTMLやCSSなどといったプログラミング言語の学習を始めようと考えている方、または最近学習を始めた方がいらっしゃるかと思います。

    ただ、実際に学習を始めるとなると

    1人で学習を進められるかな…
    どこをゴールにしていいかわからない…
    挫折してしまわないかな…

    このように不安な気持ちになる方もいますよね。

    たしかに、何かわからないことが出てきたとき、エラーが解決できないとき、誰かに相談できる環境がないことが理由でプログラミング言語の学習を挫折する方が多くいます。

    実際にプログラミング言語初学者が挫折をする1番の理由は「不明点が発生した際に気軽に相談できる環境がない」という実態があります。

    それだけ学習する環境が大事だということです。

    そんな背景があるからこそ、プログラミングの勉強をする際にスクールを選ぶ方が多いのが事実です。

    プログラミングスクールに通う理由は他にもあり

    ・確実にスキルを身に着けたい
    ・効率良く学習を進めたい
    ・モチベーションの維持にもつながりそう
    ・以前に独学で挫折した経験がある
    このように「確実に!」「効率良く!」といった声もよく上がります。
    やはり途中で挫折してしまったり、どこを目指しているのかわからなくなったりした場合、「プログラミングを学習することは難しい」と認識してしまい、その後のスキル習得を諦めてしまう可能性が非常に高くなります。
    このようなことから、社会人で時間もそこまでないため短期間でスキルを習得したい人や独学で進めるのが不安な人が効率性や確実性を求め、プロの講師に相談できる環境が用意されているプログラミングスクールを選択するのがわかります。
    「転職をしたい」「副業で稼げるようになりたい」という理由でプログラミング言語を学び始めたとき、わからない箇所を飛ばしてそのままに放置して学習を進めたとしても、目標とする転職や副業が実現するほどのスキルが身につかなければ多くの時間を費やして何も得られないという結果になります。
    ですので、1人でHTMLやCSSなどといったプログラミングスキルの習得ができるか不安な方は多少の費用をかけてでも、不明点をすぐに相談・解決できる環境や効率良く学習できる有料サービスを選ぶのがベストだと言えます。
    そこでおすすめしたいのが「忍者CODE」です。
    忍者CODEをおすすめする1番の理由は「業界最安級の金額でありながら圧倒的学習ボリュームと半永久サポートを提供している」ところにあります。
    上記でお伝えしたように、初学者の多くは独力で不明点や問題点を解決できないためにプログラミングの学習を挫折しています。そのため、初学者が経験豊富なプロのエンジニアに相談できない環境下でプログラミングスキルの習得をするのは難易度が高いと言えます。
    ですが、忍者CODEでは
    ・チャットでいつでも、無制限で質問可能
    ・学習者同士でつながれるコミュニティへの招待
    などといったサポート体制を設けているため、学習を進めていく中で出てきた問題点や不明点をスムーズに解決しながら、挫折することなくプログラミングスキルの習得が可能です。
    また、忍者CODEでは動画コンテンツにて学習を進めていくため、スッと頭に入ってきやすいようになっているのも特徴です。
    未経験でも挫折させないオンラインスクールとして、受講生に寄り添った学習コンテンツを提供している忍者CODEをより詳しく知りたい方はぜひ公式サイトをご覧ください。