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の加工など、日常的な開発でもよく使われる関数なので、ぜひマスターしておきましょう。
-
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()
-
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