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関数