残像ブログ

残像だった

substr

substrは指定した文字列から文字を取り出す。

substr(文字列, 取り出す位置 [,文字数])

引数

  • 文字列【必須】: (string)対象の文字列
  • 取り出す位置【必須】:(int)文字を取り出す開始位置
  • 文字数【オプション】:(int)取り出すor除外する文字数

文字数」が正の値の場合

取り出す位置」が正の値の場合

文字列の先頭(左端)から「取り出す位置」番目の文字をスタート位置にして、右に向かって「文字数」分取り出す。
ただし「取り出す位置」のカウントは0から始まる

//例:「ab」と表示
echo substr("abcdef", 0, 2); 
取り出す位置」が負の数の場合

文字列」の末尾(右端)から「取り出す位置」(の絶対値)番目の文字をスタート位置にして、右に向かって「文字数」分取り出す。
取り出す位置のカウントは-1からはじまる。

//例:「ef」と表示
echo substr("abcdef" ,-2,2);

画像にまとめると以下の様になる。

文字数」が負の値の場合

取り出す位置」から始まる文字列に対して、文字列の末尾(右端)から数えて「文字数」(の絶対値)分の文字を除外して取り出す。

//例:「bcd」が表示される
//「取り出す位置」が1なので「b」から右の文字列を取り出し
//「文字数」が-2なので「ef」を除外する。
$str1 = substr("abcdef",1,-2);

//以下の様に指定しても$str1と同じ結果になる
$str2 = substr("abcdef",1,3);
$str3 = substr("abcdef",-5,-2);

echo "str1 = $str1 ,str3 = $str2 ,str3 = $str3";

なお、「取り出す位置」より除外文字数が多い場合はFalseを返す。

//例:Falseが返る
echo substr("abcdef",3,-4);

文字数」を指定しなかった場合

取り出す位置」から右側の文字を全て取り出す。

//例:「def」が表示される
echo substr("abcdef", 3);

参考:PHP: substr - Manual