PHPのreplace関数で文字列の置換をする方法【初心者向け】
プログラミング初心者向けにreplace関数で文字列の置換を行う方法について解説しています。str_replaceを使うと指定した文字列を他の文字列に置き換えることができます。いざという時に便利なので、ぜひコードを書けるようになりましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、replace関数の使い方について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
文章中のある語句を他の文字列に置き換えたい場合に便利です。
実務でもreplace関数を利用した文字列置き換え実装をしますので、ぜひ学習してみてください。
目次
そもそも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つ目の要素は省略が可能です。
文字列が置き換え後に変換されてますね。置き換えた回数もわかるんですねー。
掲示板とか他のユーザーからの投稿の改行文字をbrタグに置き換えた場合とか、置き換え回数が多い場合警告を発するという使い方もいいね。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
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では、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では、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”;では、改行しています。
おわりに
文字列の置換を行う方法について解説しました。
str_replace関数を利用することで、文字を一括で置き換えできました。
配列を表示する際はprint_rを利用しました。
PHPで配列(Array)の中身を出力する方法を参考にしていただくと、より深いご理解ができおすすめです。
ベースになる変換対象の文字列のところに、配列も指定できるんですねー。配列の中の文字列という文字が、置き換え後という文字に変わってますね。
そうなんだ。あと、置き換え対象の文字にも配列を指定できたりするんだよ。
この文字とあの文字があった場合、ある文字に置き換えるってことができるんですね。
そうそう。いろんな改行文字を配列で指定して、brタグに置き換えることなどに使われているね。
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!