本記事では、PHPで文字列の一部を取得する方法について解説しています。
- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
mb_substr関数
対象文字列のn文字目~n文字目までを取得したい場合は、mb_substr関数を使用します。基本的な使い方は以下のとおりです。
mb_substr($string, $start [,$length] [, $encoding]);
- $string:n文字目~n文字目までを取得したい対象の文字列を指定
- $start:文字列を取得する開始位置
- $length:取得する文字数(省略可能)
- $encoding:対象文字列の文字コード(省略可能)
文字列は1文字目を0からカウントします。後方から検索をする場合は、負数-1が最後の文字です。
mb_substr関数を使用したサンプルコードを用意したので、動作確認してみましょう。
<?php
$str = 'Webエンジニア';
echo mb_substr($str, 0) . '</br>'; // Webエンジニア
echo mb_substr($str, 0, 3) . '</br>'; // Web
echo mb_substr($str, 3, 5) . '</br>'; // エンジニア
echo mb_substr($str, -5, 5); // エンジニア
1つ目のmb_substr関数は、文字列を取得する開始位置に0を指定し、取得する文字数を省略しています。取得する文字数を省略すると開始位置から後方の文字が対象となるため1文字目~最後の文字まで取得します。
2つ目のmb_substr関数は、文字列を取得する開始位置に0を指定し、取得する文字数に3を指定しています。開始位置が0は1文字目なので、「w」から始まり3文字目の「b」までが対象の文字列なので「Web」を取得します。
3つ目のmb_substr関数は、文字列を取得する開始位置に3を指定し、取得する文字数に5を指定しています。開始位置が3は4文字目なので、「エ」から始まりそこから5文字「ア」までが対象の文字列なので「エンジニア」を取得します。
4つ目のmb_substr関数は、文字列を取得する開始位置に-5を指定し、取得する文字数に5を指定しています。開始位置が-5は後方から数えると4文字目なので、「エ」から始まりそこから5文字「ア」までが対象の文字列なので「エンジニア」を取得します。
mb_strstr関数
特定の文字列を基点に前方・後方の文字列を取得したい場合は、mb_strstr関数を使用します。基本的な使い方は以下のとおりです。
mb_strstr($haystack, $needle [,$before_needle] [, $encoding]);
- $haystack:対象の文字列を指定
- $needle:検索対象の文字列を指定
- $before_needle:検索対象の文字列を見つけた場合、前方の文字を取得したい場合はtrueを、後方の文字を取得したい場合はfalseを指定(デフォルト値はfalse)
- $encoding:対象文字列の文字コード(省略可能)
mb_strstr関数を使用したサンプルコードを用意したので、動作確認してみましょう。
<?php
$str = 'Webエンジニア';
echo mb_strstr($str, 'エ', true) . '</br>'; // Web
echo mb_strstr($str, 'エ', false) . '</br>'; // エンジニア
echo mb_strstr($str, 'ク') . '</br>'; // false
1つ目のmb_strstr関数は、検索対象の文字列に「エ」を、第三引数にtrueを指定しています。trueを指定することで検索対象の文字列を見つけると前方の文字列「Web」を取得します。
2つ目のmb_strstr関数は、検索対象の文字列に「エ」を、第三引数にfalseを指定しています。falseを指定することで検索対象の文字列を見つけると後方の文字列「エンジニア」を取得します。
3つ目のmb_strstr関数は、検索対象の文字列に「ク」を指定しています。存在しない検索対象の文字列をセットするとmb_strstr関数はfalseを返します。