PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのsubstr()関数とは?文字列を切り出す方法を実例付きで徹底解説

PHPには、さまざまな機能を持つ組み込み関数が多数用意されています。その中でもsubstr()は文字列を扱うための組み込み関数で、文字列の一部を抽出(切り出し)する際に利用されます。

本記事では、substr()関数の基本構文、各パラメータの意味、実際のコード例と出力結果まで、わかりやすく解説していきます。

substr()関数の基本構文

substr(string, start, length)

substr()関数には最大3つのパラメータを渡すことができ、このうち「string」と「start」の2つが必須、「length」は省略可能です。それぞれのパラメータについて詳しく見ていきましょう。

1. string(第1引数:必須)

切り出し対象となる元の文字列を指定します。このパラメータは必須です。

2. start(第2引数:必須)

文字列のどこから切り出しを始めるかを整数値で指定します。このパラメータも必須です。

  • 正の整数を指定した場合: 文字列の先頭から数えて、指定した位置から切り出しが始まります。
  • 負の整数を指定した場合: 文字列の末尾から数えた位置が切り出しの開始地点となります。

3. length(第3引数:省略可能)

元の文字列から何文字分を切り出すかを整数値で指定します。このパラメータは省略できます。

  • 正の整数を指定した場合: 開始位置から指定した文字数分だけ抽出します。
  • 負の整数を指定した場合: 文字列の末尾から指定した文字数分が切り出しの対象となります。
  • 省略した場合: 開始位置から文字列の最後までがすべて返されます。

substr()関数の使用例

それでは、実際のコード例を見てみましょう。

<?php
    $string1 = "Welcome To Tutorials Point";
    $len = strlen($string1);
    echo substr($string1, 8), "<br/>";
    echo substr($string1, 5, $len), "<br/>";
    echo substr($string1, -5, 3), "<br/>";
?>

出力結果

To Tutorials Point
me To Tutorials Point
Poi

コードの解説

上記の例では、まず文字列変数 $string1 を用意し、substr()関数を使って必要な部分を取り出しています。

  • 1つ目の出力: 開始位置のみを指定しています。8番目の位置から文字列の最後までが出力されるため、「To Tutorials Point」が表示されます。
  • 2つ目の出力: 開始位置と長さの両方を指定しています。5番目の位置から文字列全体の長さ分を抽出するため、「me To Tutorials Point」が表示されます。
  • 3つ目の出力: 開始位置に負の値(-5)を指定しているため、文字列の末尾から5番目の位置を起点として3文字分が抽出され、「Poi」が表示されます。

このように、substr()関数では開始位置に正の値を指定すれば先頭から、負の値を指定すれば末尾からのカウントとなり、柔軟に文字列を切り出すことができます。ログの解析やURLの加工など、日常的な開発でもよく使われる関数なので、ぜひマスターしておきましょう。

  1. PHPのquoted_printable_encode()関数の使い方を徹底解説

    PHPのquoted_printable_encode()関数は、8ビット文字列をquoted-printable形式の文字列に変換するための組み込み関数です。quoted-printableはMIME(Multipurpose Internet Mail Extensions)で定義されているエンコード方式の一つで、主に電子メールで非ASCII文字(日本語など)を安全に送信する際に利用されます。構文quoted_printable_encode(str)パラメータstr − 変換対象となる8ビット文字列を指定します。この引数は必須です。戻り値quoted_printable_encode()

  2. PHPのquoted_printable_decode()関数とは?使い方とサンプルコードを解説

    PHPのquoted_printable_decode()関数は、quoted-printable形式でエンコードされた文字列を、8ビット文字列にデコードするために使用されます。メール本文などで使われるquoted-printableエンコーディングを元に戻したい場合に便利な関数です。 構文 quoted_printable_decode(str) パラメータ str − デコード対象となる入力文字列を指定します。 戻り値 quoted_printable_decode()関数は、デコード後の8ビットASCII文字列を返します。 使用例 以下は、quoted_printable_dec