
スキルアップ
2021.01.08
社会人の勉強は何をするべき?勉強のメリットと勉強方法も紹介!
社会人になっても勉強は必要!と言われても、何を勉強したら良いのか迷いますよね。仕事に関わるスキルを磨いたり、資格を取得したりする他にも、勉強できることはたくさんあります。ここでは、社会人が勉強するメリット、オススメの勉強 […]
PHP
2019.05.09
PHP で文字列の一部を抽出する場合は substr 関数を使用しますが、substr 関数では意図する結果が得られない場合もあります。
今回は PHP で文字列を抽出する方法を紹介します。
尚、本サイトでは XAMPP( ザンプ )という開発環境を使用しています。
XAMPP のインストール方法や起動方法については以下の記事をご参照下さい。
PHP【 開発環境 】XAMPP インストール
PHP【 開発環境 】XAMPP の使い方
最終更新日:2019年5月9日
1.substr で文字列を抽出
2.mb_substr で文字列を抽出
substr 関数は、文字列中の一部を抽出する関数です。
実行すると、抽出した文字列が返ります。
substr 関数は 次のように記述して使用します。
substr ( 文字列, 抽出開始位置 [, 抽出範囲 ] ) ;
第 1 引数には、抽出対象となる文字列を指定します。
第 2 引数には、抽出範囲の開始位置を 1 文字目を 0 とする数字で指定します。
第 2 引数に負の数を指定すると、抽出対象文字列の末尾から 数値分戻った位置が開始位置となります。
第 3 引数には、抽出範囲を文字列の長さで指定することができます。指定しない場合は、第 2 引数で指定した開始位置以降の全てが抽出範囲となります。
第 3 引数に負の数を指定すると、検索対象文字列の末尾から 数値分の文字列が抽出対象から除外されます。
substr 関数を使用して 文字列の一部を抽出してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<?php $str = "19001andomale"; echo substr($str, 3); echo "<br>"; echo substr($str, 5, 4); echo "<br>"; echo substr($str, -4); echo "<br>"; echo substr($str, -8, -4); ?>
「 echo 」は、データを出力するために使用する PHP の命令です。
「 substr($str, 3) 」は、第 2 引数に「 3 」を指定しているので 先頭から 4 文字目が抽出開始文字となります。
また、第 3 引数の指定がないため、開始文字以降の全ての文字列が抽出されます。
「 substr($str, 5, 4) 」は、第 2 引数に「 5 」、第 3 引数に「 4 」を指定しているので、先頭から 6 文字目以降の 4 文字が抽出されます。
「 substr($str, -4) 」は、第 2 引数に負の数「 -4 」を指定しているので、末尾から 4 文字目以降が抽出されます。
「 substr($str, -8, -4) 」は、第 2 引数より 末尾から 8 文字目が抽出開始文字となりますが、第 3 引数に負の数「 -4 」を指定しているので 末尾から 4 文字目以降は除外され、末尾から 5 文字目までの文字列が抽出されます。
英数字のみの文字列に関しては substr 関数で問題なく文字列の抽出ができますが、漢字や平仮名等が入った文字列から substr 関数を使用して文字列の抽出を行うと、意図した結果が得られない場合があります。
そこで、英数字以外の文字が入った文字列に関しては、mb_substr 関数を使用して文字列の抽出を行います。
mb_substr 関数も、substr 関数と同様に文字列中の一部を抽出する関数です。
実行すると、抽出した文字列が返ります。
mb_substr 関数は 次のように記述して使用します。
mb_substr ( 文字列, 抽出開始位置 [, 抽出範囲 [, エンコーディング ] ] ) ;
mb_substr 関数を使用して 文字列を抽出してみます。
下記のようなソースファイルを作成して ブラウザからアクセスすると、次のような表示になります。
( ソースファイルの作成方法についてはソースファイルを作成を、サーバの起動方法等についてはサーバを起動を、それぞれご参照下さい。)
<?php $str = "19001安藤男"; echo substr($str, 7); echo "<br>"; echo mb_substr($str, 7); echo "<br>"; echo mb_substr($str, 5, 2); echo "<br>"; echo mb_substr($str, -1); ?>
「 echo 」は、データを出力するために使用する PHP の命令です。
「 substr($str, 7) 」では抽出した文字列が文字化けしているのに対して、「 mb_substr($str, 7) 」では 半角文字か全角文字かに関わらず 8 文字目以降の文字列が正常に抽出されています。
「 mb_substr($str, 5, 2) 」も、先頭から 6 文字目以降の 2 文字が正常に抽出されています。
また、負の数を指定した「 substr($str, -1) 」についても、末尾から 1 文字が抽出されています。
スキルアップ
2021.01.08
社会人になっても勉強は必要!と言われても、何を勉強したら良いのか迷いますよね。仕事に関わるスキルを磨いたり、資格を取得したりする他にも、勉強できることはたくさんあります。ここでは、社会人が勉強するメリット、オススメの勉強 […]
スキルアップ
2021.01.08
独学でフリーランスエンジニアを目指す方へ向けて、未経験からフリーランスエンジニアになるための手順や独学でのプログラミング学習法、必要なスキルなどをご紹介します。 独学とスクールどちらで勉強すればいいか迷っている、そもそも […]
スキルアップ
2021.01.05
高卒女子の就職内定率は大卒女子とほぼ同じ。でも知恵袋には「高卒女性が応募できる正社員求人って少ないのでは…?」と心配する人たちもいるようですが、資格なしでも高収入が期待できる仕事はたくさんあります。そこで今回は現役女子高 […]
スキルアップ
2020.12.30
プログラマの仕事に興味はあるものの「プログラマの仕事はきつい」というのを耳にして不安に思ったりしていませんか?なぜプログラマの仕事はきついといわれるのか?そもそも未経験からでもプログラマになれるのか?本記事では、プログラ […]
スキルアップ
2020.12.21
技術の進歩に伴い、IT業界も人気の業界のひとつとなりましたが、「IT業界はブラック企業が多いからエンジニアを目指すのはやめとけ」という声も聞こえてきます。これは本当なのでしょうか?この記事では、実際の疑問の声に対する理由 […]
スキルアップ
2020.12.18
仕事にやりがいを感じられず悩んではいませんか?本記事では、仕事で満足感を得るにはどうすればいいのか、やりがいの感じやすいお仕事7選、仕事にやりがいを見つけるポイント、転職しなくても仕事の満足度をあげる方法などをご紹介しま […]
INTERNOUS,inc. All rights reserved.