1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【PHP入門】文字列操作の方法について徹底解説!!

Pocket

PHPでは、文字列を操作するためにとても便利な関数が用意されています。
たとえば、指定した文字列から一部の文字を取得したいときは、substr関数や、mb_substr関数、文字列を指定した文字列で分割するexplode関数などがあります。
今回は、これらの3つの関数の使い方と使用例について紹介します。

substr関数とは

説明

substrとは、指定した文字列から、一部の文字列を取得する関数です。

たとえば、「taro@ezweb.ne.jp」という文字列データを使用してみましょう。
この場合、先頭文字「t」の位置は0番目から始まることにご注意ください。
substr(‘ taro@ezweb.ne.jp ‘,0,4)のように指定して実行すると、文字列「taro」が、戻り値として返されます。

書式

引数1:文字列(string)
引数2:開始文字位置(int) 0からの開始となります。
引数3:取得したい文字数(int)  バイト数で指定します。
    

戻り値

指定した位置の文字列

[使用例]
それでは、実際にsubstr関数を使用して、簡単なプログラムを作成してみましょう。
” taro@ezweb.ne.jp “という文字列から文字の位置とバイト数を指定して、文字を取得します。

サンプルプログラム

実行結果

文字列:taro@ezweb.ne.jp の0番目から4バイトを取得すると taro
文字列:taro@ezweb.ne.jp の5番目から5バイトを取得すると ezweb
文字列:taro@ezweb.ne.jp の5番目から最後までを取得すると ezweb.ne.jp
文字列:taro@ezweb.ne.jp の末尾2番目から2バイトを取得すると jp
文字列:taro@ezweb.ne.jp の末尾5番目から最後までを取得すると ne.jp

mb_substr関数とは

substr関数と基本的には同じ処理を行うのですが、バイト数ではなく文字数を指定して、文字を取得することが可能です。
全角の文字列を取得する場合に、substr関数を使用してバイト数を指定すると、実行結果に文字化けが生じるようです。全角をあつかうような文字列操作では、mb_substr関数を使用することをお奨めします。

説明

substrとは、指定した文字列から、一部の文字列を取得する関数です。
たとえば、「あけましておめでとうございます。」という文字列データを使用してみましょう。
この場合、文字が全角であることにご注意ください。

mb_substr(‘あけましておめでとうございます。’,0,5)のように指定して実行すると、文字列「あけまして」が、戻り値として返されます。

書式

引数1:文字列(string)
引数2:開始文字位置(int) 0からの開始となります。
引数3:取得したい文字数(int)  文字数で指定します。
    

戻り値

指定した位置の文字列

[使用例]
それでは、実際にmb_substr関数を使用して、簡単なプログラムを作成してみましょう。

サンプルプログラム

実行結果

文字列「あけましておめでとうございます。」の最初から5文字取得すると「あけまして」
文字列「あけましておめでとうございます。」の5番目から5文字取得すると「おめでとう」

explode関数とは

explode関数とは、文字列を指定した文字列で分割する関数です。

たとえば、

”apple、orange、lemon、banana”

のような文字列データを考えて見ましょう。

explode関数を使って、文字列”、”で分割すると、4つのくだものの名前に分けることができます。

”apple” 、 ”orange” 、 ”lemon” 、 ”banana”

分割された文字列は、戻り値として返される配列の各要素として格納されます。
array [0]= ”apple”
array [1]= ”orange”
array [2]= ”lemon”
array [3]= ”banana”

書式

   

説明

引数1:区切り文字(separator)
引数2:文字列(string)
引数3:戻り値として返す、配列の最大要素数

戻り値

   
分割した文字列が格納された各配列

使用例

それでは、実際にexplode関数を使用して、簡単なプログラムを作成してみましょう。
”apple,orange,lemon,banana”という名前が記載された文字列を、区切り文字” , ” (カンマ)で分割します。

サンプルプログラム

実行結果

文字列「apple,orange,lemon,banana」を”,”で分割します。
apple
orange
lemon
banana

おわりに<

いかがでしたでしょうか。文字列を操作する関数では、全角文字や半角カナが含まれるケースがあるので注意が必要ですね。そのような場合は、mb_substr関数のように文字数そのもので扱うことが出来る関数を使用したほうがよさそうです。
いろいろなケースが考えられるので、ぜひ一度、試してみてください。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る