【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【PHP】文字列の一部を取得する方法

本記事では、PHPで文字列の一部を取得する方法について解説しています。

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/06/11 11:14時点 | 楽天市場調べ)
\楽天ポイント5倍セール!/
楽天市場で探す
\ポイント5%還元!/
Yahoo!ショッピングで探す
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場で探す
\ポイント5%還元!/
Yahoo!ショッピングで探す
目次

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を返します。

前方の文字列を取得する際は検索対象の文字は含みませんが、後方の文字列を取得する際は検索対象の文字列を含む文字列を取得します。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次