icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、replace関数の使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

文章中のある語句を他の文字列に置き換えたい場合に便利です。

実務でもreplace関数を利用した文字列置き換え実装をしますので、ぜひ学習してみてください。

 

目次

1時間でできる無料体験!

 

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

replace関数とは

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

文章中にある「,(カンマ)」を「、(読点)」に置換したり、「作る」という表記を「創る」に置き換えるような使い方が可能です。

 

replaceの書き方

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

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

 

「検索を行う文字列」「置き換えを行う文字列」「対象の文字列(または配列)」「str_replace処理の回数」を順番に指定します。

それぞれの内容は以下の通りです。

検索を行う文字列:別のものに置き換えたい部分の文字列を入力します。

置き換え後の文字列:置き換えた後の文字列を入力します。

対象の文字列:置き換えの処理を行う文字列(全体)です。

str_replace処理の回数:変数を指定して、str_replaceの処理が何回行われたかという数字を格納できます。

<?php
    $str = "文字列1n文字列2n文字列3n";
    echo $str;
    $str = str_replace("文字列", "置き換え後", $str,$n);
    echo $str;
    echo $n."回置き換えました";

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

 

画面ではこのように表示されます。

この4つ目の要素は省略が可能です。

php_rep_3

 

大石ゆかり

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

田島悠介

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

 

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

str_replaceを実際に書いてみよう

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

 

変数の場合

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

サンプルコード

<?php
  $str = "I have a pen";
    echo $str;
    echo "n";
  $str = str_replace("pen", "pineapple", $str);
    echo $str;
    echo "n";

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

画面では以下のようになります。

上が置き換え前、下がstr_replaceで文字列の置き換えを行った後の文字列です。

表示結果

php_rep_1

解説

<?phpでは、PHPプログラムを開始することを意味します。

$str = “I have a pen”;では、変数$strに文字列I have a penを代入しています。

echo $str;では、変数$strを表示しています。

echo “n”;では、改行しています。

$str = str_replace(“pen”, “pineapple”, $str);では、$strの中から「検索を行う文字列」に指定した文字列penの部分を「置き換え後の文字列」である文字列pineappleに置き換え、変数$strに代入しています。

echo $str;では、変数$strを表示しています。

echo “n”;では、改行しています。

 

配列の場合

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

サンプルコード

<?php
  $words = array ("文字列1","文字列2","文字列3",);
  print_r($words);
  echo "n";
  $words = str_replace("文字列", "置き換え後", $words);
  print_r($words);
  echo "n";

表示結果

php_rep_2

解説

<?phpでは、PHPプログラムを開始することを意味します。

$words = array (“文字列1″,”文字列2″,”文字列3″,);では、配列データ”文字列1″,”文字列2”,”文字列3″を、変数$wordsに代入しています。

print_r($words);では、変数wordsを表示しています。

echo “n”;では、改行しています。

$words = str_replace(“文字列”, “置き換え後”, $words);では、「対象の文字列」の部分に配列$wordsを指定し、その要素の中の文字列の部分を置き換え後に変更して、変数$words に代入しています。

print_r($words);では$words を表示しています。

echo “n”;では、改行しています。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

おわりに

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

str_replace関数を利用することで、文字を一括で置き換えできました。

配列を表示する際はprint_rを利用しました。

PHPで配列(Array)の中身を出力する方法を参考にしていただくと、より深いご理解ができおすすめです。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

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

 

PHPを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する