PHP初心者必見!substr関数の使い方と活用例7選

PHPのsubstr関数の使い方と活用例を示す図表PHP
この記事は約11分で読めます。

※本記事のコンテンツは、利用目的を問わずご活用いただけます。実務経験10000時間以上のエンジニアが監修しており、基礎知識があれば初心者にも理解していただけるように、常に解説内容のわかりやすさや記事の品質に注力しております。不具合・分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。(理解できない部分などの個別相談も無償で承っております)
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングの世界では、文字列を操作することは日常茶飯事です。

Webアプリケーションを作っているときでも、文字列の一部を取得したり、特定の位置の文字を抽出したりといった操作が頻繁に求められます。

これらの操作を手軽に行うためにPHPには、便利な関数が豊富に用意されています。

この記事を読んでいただければ、PHPにおける文字列操作の鍵となる substr 関数の使い方を詳しく学ぶことができます。

初心者の方でも理解しやすいよう、基本的な使い方から始め、具体的な活用例までを7つのサンプルコードとともに分かりやすく解説します。

また、エラーハンドリングやカスタマイズ方法もしっかりと解説するので、より深く substr 関数を理解し活用できるようになります。

●PHPとsubstr関数とは

PHPは世界中で広く利用されているサーバーサイドのスクリプト言語であり、動的なWebサイトやWebアプリケーションの開発によく用いられます。

PHPには多くの組み込み関数があり、これらをうまく使うことで効率的にプログラムを書くことができます。

その中でも、substr 関数は文字列から部分文字列を取得するための関数で、非常に便利です。

特に文字列操作が多いWeb開発では頻繁に使用します。

○substr関数の基本的な使い方

substr 関数は以下のような形で使用します。

substr($string, $start, $length);

ここで、

  • $string は操作対象の文字列
  • $start は部分文字列の開始位置(0から始まる)
  • $length は部分文字列の長さ

を表します。

●実践的なsubstr関数の使い方と活用例

それでは、具体的な活用例として7つのサンプルコードをご紹介します。

初心者の方でも理解しやすいよう、一つひとつのサンプルコードに詳細な説明を添えています。

○サンプルコード1:文字列から部分文字列を取得

このサンプルコードでは、文字列から部分文字列を取得する基本的な使用例を紹介します。

下記のコードでは、”Hello, world!”という文字列から、2文字目から4文字を取得します。

<?php
$string = "Hello, world!";
$substring = substr($string, 1, 4);

echo $substring;
?>

このコードでは substr 関数を使って “Hello, world!”の文字列から部分文字列を取得しています。

この例では2文字目(インデックスは0から始まるため、開始位置は1)から4文字を取得しています。

上記のコードを実行すると、出力結果は “ello” になります。

○サンプルコード2:文字列の先頭と末尾を取得

次に、文字列の先頭と末尾を取得する方法を見てみましょう。

これは特にログ解析やデータ整形などで役立つ操作です。

<?php
$string = "Hello, world!";
$first_char = substr($string, 0, 1);
$last_char = substr($string, -1);

echo $first_char . ", " . $last_char;
?>

上記のコードでは、substr 関数を用いて “Hello, world!”という文字列の最初の文字と最後の文字を取得しています。

$first_char では文字列の最初(0番目)の1文字を、$last_char では文字列の最後の1文字を取得しています。

このコードを実行すると、結果として “H, !”が出力されます。

これは、$first_char の “H” と $last_char の “!” をカンマとスペースでつなげた結果です。

○サンプルコード3:文字列の中間部分を取得

substr 関数は、文字列の中間部分を取得する際にも使われます。

下記のコードでは、”Hello, world!”という文字列から中間部分、”llo, wo”を取得します。

<?php
$string = "Hello, world!";
$middle_part = substr($string, 2, 7);

echo $middle_part;
?>

このコードでは substr 関数を使って、”Hello, world!”という文字列の中間部分を抽出しています。

具体的には、3文字目から7文字分を取り出すという操作を行っています。

実行結果は “llo, wo” となります。

○サンプルコード4:文字列の特定の位置から部分文字列を取得

また、substr 関数を用いれば、文字列の特定の位置から部分文字列を取得することも可能です。

下記のコードでは、”Hello, world!”という文字列から7文字目から後ろの全てを取得しています。

<?php
$string = "Hello, world!";
$substring = substr($string, 6);

echo $substring;
?>

このコードでは substr 関数を使って、”Hello, world!”という文字列から特定の位置から部分文字列を取得しています。

具体的には、7文字目から後ろの全てを取得するという操作を行っています。

このコードを実行すると、結果は “world!”となります。

○サンプルコード5:文字列から特定の文字を取得

文字列から特定の文字を取得するにも substr 関数が役立ちます。

次のコードでは “Hello, world!” という文字列から3文字目と7文字目の文字を取得しています。

<?php
$string = "Hello, world!";
$third_char = substr($string, 2, 1);
$seventh_char = substr($string, 6, 1);

echo $third_char . ", " . $seventh_char;
?>

このコードでは、3文字目と7文字目の文字を取得するために substr 関数を使用しています。

$third_char では3文字目の1文字を、$seventh_char では7文字目の1文字を取得しています。

コードを実行すると “l, w” が出力されます。

これは、3文字目の “l” と 7文字目の “w” を取得してカンマとスペースでつなげたものです。

○サンプルコード6:文字列の特定の位置から終端までを取得

次に、文字列の特定の位置からその終端までを取得する方法を表します。

こちらも substr 関数を活用します。

下記のコードでは、”Hello, world!”という文字列の7文字目以降の全てを取得しています。

<?php
$string = "Hello, world!";
$substring = substr($string, 6);

echo $substring;
?>

このコードでは7文字目から文字列の終端までを取得するために substr 関数を使っています。

具体的には、”Hello, world!”から7文字目以降の全てを取り出す操作を行っています。

このコードを実行すると “world!”が出力されます。

これは、”Hello, world!”の7文字目以降を取り出した結果です。

○サンプルコード7:文字列の特定の位置から特定の長さの部分文字列を取得

最後に、文字列の特定の位置から特定の長さの部分文字列を取得する方法を見てみましょう。

下記のコードでは “Hello, world!”という文字列の3文字目から4文字分を取得します。

<?php
$string = "Hello, world!";
$substring = substr($string, 2, 4);

echo $substring;
?>

このコードでは substr 関数を使って “Hello, world!”から3文字目から4文字分を取得しています。

この処理により、指定した位置から指定した長さの部分文字列が得られます。

コードを実行すると “llo,” が出力されます。これは “Hello, world!”の3文字目から4文字分を取得した結果です。

●substr関数を用いたエラーハンドリングと対処法

substr関数を用いる際、潜在的なエラーに対応する方法を理解しておくことが重要です。

具体的には、文字列の長さを超えた位置を指定した場合や、文字列ではないデータ型に対してsubstr関数を適用した場合などです。

まずは、文字列の長さを超えた位置を指定した場合のエラーハンドリングについて見てみましょう。

<?php
$string = "Hello, world!";
$substring = substr($string, 50, 5);

echo $substring;
?>

このコードでは “Hello, world!”から50文字目から5文字分を取得しようとしています。

しかし “Hello, world!”は13文字しかなく、50文字目は存在しません。

このコードを実行すると何も出力されません。

これは substr関数が存在しない位置を指定された場合、何も返さない(具体的には空の文字列を返す)ためです。

このような状況を避けるためには、substr関数を使う前に指定する位置が文字列の長さを超えていないか確認することが重要です。

これは strlen関数を使うことで実現できます。

次に、文字列ではないデータ型に対してsubstr関数を適用した場合のエラーハンドリングについて見てみましょう。

<?php
$not_a_string = 12345;
$substring = substr($not_a_string, 2, 1);

echo $substring;
?>

このコードでは整数から3文字目の1文字を取得しようとしています。

しかし、substr関数は文字列に対してのみ適用可能であり、整数に対しては使用できません。

このコードを実行すると、エラーが発生します。

これはsubstr関数が文字列に対してのみ適用可能であるためです。

このような状況を避けるためには、substr関数を使う前にデータが文字列であることを確認することが重要です。

これは is_string関数を使うことで実現できます。

以上が substr関数を使う際の潜在的なエラーとその対処法になります。

エラーハンドリングを適切に行うことで、予期せぬ問題を防ぐことができます。

●substr関数のカスタマイズ方法

substr関数の基本的な使用法を理解したら、次はそれをカスタマイズする方法を探ってみましょう。

たとえば、特定の文字を探し、その位置から部分文字列を取得するといった使い方が考えられます。

<?php
$string = "Hello, world!";
$pos = strpos($string, ',');
$substring = substr($string, $pos + 2);

echo $substring;
?>

このコードでは、まず,の位置をstrpos関数で探しています。

そして、その位置から2文字後からの部分文字列を取得しています。

これにより、,の後ろの部分文字列が取得できます。

このコードを実行すると “world!”が出力されます。

これは,の後ろの部分文字列を取得した結果です。

このようにsubstr関数は、他の文字列操作関数と組み合わせることで、より複雑な文字列操作を実現することができます。

他の関数との組み合わせ方により、substr関数の活用範囲は大幅に広がります。

まとめ

これでPHPのsubstr関数の基本的な使い方とエラーハンドリング、さらにはカスタマイズ方法について学ぶことができました。

まず、substr関数は指定した位置から指定した長さの部分文字列を取得するための関数であることを学びました。

そして、潜在的なエラーに対するハンドリング方法についても解説しました。こ

れは、文字列の長さを超える位置を指定したときや、文字列でないデータ型に対してsubstr関数を適用しようとしたときに発生します。

これらのエラーを防ぐためには、substr関数を適用する前に必ず指定する位置が文字列の長さを超えていないか、またはデータが文字列であることを確認することが必要です。

さらに、substr関数を他の関数と組み合わせることで、より複雑な文字列操作を実現することができることも学びました。例えば、特定の文字の位置を探してその位置から部分文字列を取得する、といった操作が可能になります。

これらを通じて、substr関数は非常に便利なツールであることがおわかりいただけたと思います。

文字列操作はプログラミングの中で頻繁に行われる作業の一つです。

そのため、substr関数のような基本的な関数の使い方をしっかりと理解し、適切に活用することは重要です。

本記事が、あなたのPHPプログラミングスキルの向上に少しでもお役に立てれば幸いです。

また、これからもsubstr関数を初めとするさまざまなPHP関数の使い方や活用法について学び続けて、スキルアップを目指しましょう。