substr


substr EXPR, OFFSET, LENGTH
substr EXPR, OFFSET

 EXPRから文字列の一部を取得します。取得する文字列は先頭からOFFSET文字目(0から数えます)からLENGTH個の文字です。LENGTHを省略すれば文字列の最後までです。Visual BasicのMid関数と似ています。
 OFFSETに負の値を使用するとEXPRの末尾から文字列の開始位置を計算します。Visual Basicのright関数のようなことをしたい場合に使えます。
 LENGTHに負の値を使用するとLENGTH個の文字が残るような長さの文字列を取得します。
 さらにsubstrは左辺に使用することができます。この場合はsubstrで対象になった文字列を右辺の文字列に置き換えます。
 OFFSETの解釈は$[の値によって変わるので、動きが怪しいときは$[をチェックしましょう。

サンプルプログラム

$a = 'abcdefg';

# 1文字目から2文字取得
$b = substr($a, 1, 2);	# $b = 'bc'

# 4文字目から最後まで取得
$c = substr($a, 4);	# $c = 'efg'

# 後ろから2文字目から最後まで取得
$d = substr($a, -2);	# $d = 'fg'

# 2文字目から2文字残して取得
$e = substr($a, 2, -2);	# $e = 'cde'

# $aの1文字目から2文字を XYZ に置きかえる
substr($a, 1, 2) = 'XYZ';	# $a = 'aXYZdefg'


関連項目

文字列長の制限
部分文字列の取得
splice関数