関数の概要
PHPのsubstr関数は、文字列の一部を取り出すための関数です。指定した開始位置から、任意の長さだけ切り出して部分文字列を取得できます。例えば、長い文章の一部だけを抜き出したい場合や、文字列の先頭や末尾の一部を取得したいときに便利です。
パラメータの説明
string $string:部分文字列を取得したい元の文字列。int $start:切り出し開始位置。0から始まり、負の値を指定すると文字列の末尾から数えます。int|null $length(省略可能):切り出す文字数。省略すると開始位置から文字列の終わりまで取得します。負の値を指定すると、末尾から指定した数だけ除いた部分まで取得します。
戻り値
指定した開始位置から長さ分の部分文字列を返します。元の文字列よりも長い長さを指定した場合、または開始位置が文字列の長さを超えている場合は、空文字列が返ることがあります。
使用例
基本的な使い方
$text = 'Hello, World!';
echo substr($text, 7, 5); // 出力: World
この例では、「Hello, World!」の7文字目(0始まりで「W」)から5文字分を切り出して「World」を取得しています。
開始位置が負の値の場合
$text = 'abcdefg';
echo substr($text, -3, 2); // 出力: ef
文字列の末尾から3文字目から2文字分を切り出しています。末尾から数えるので「e」と「f」が取得されます。
長さを省略した場合
$text = 'こんにちは世界';
echo substr($text, 5); // 出力: 世界
長さを指定しない場合は、開始位置から文字列の終わりまで全て切り出します。この例は「こんにちは世界」の5文字目から最後まで取得しています。
関連する関数
mb_substr:マルチバイト文字(日本語など)に対応したsubstr関数。strpos:文字列内の特定の文字や文字列の位置を検索する。strlen:文字列の長さを取得する。
まとめ
PHPのsubstr関数は、文字列の一部を簡単に取り出すことができる便利な関数です。開始位置や長さを指定することで自由に切り出せるため、文字列操作では非常によく使われます。ただし、日本語などのマルチバイト文字列を扱う場合は、mb_substrの使用を検討してください。
