strspn
(PHP 4, PHP 5, PHP 7)
strspn — 指定したマスク内に含まれる文字からなる文字列の最初のセグメントの長さを探す
説明
$subject
, string $mask
[, int $start
[, int $length
]] ) : int
subject の中で、
mask 内の文字だけを含む最初の部分の長さを返します。
start と length
を省略した場合は、subject 全体を調べます。
指定した場合は、strspn(substr($subject, $start, $length),
$mask) (詳細は substr
を参照ください) をコールするのと同じ働きをします。
たとえば、
<?php
$var = strspn("42 is the answer to the 128th question.", "1234567890");
?>
subject の中で "1234567890" 内の文字だけで構成される
最初の部分が "42" であるためです。
パラメータ
-
subject -
調べたい文字列。
-
mask -
許可する文字の一覧。
-
start -
subjectの中で調べ始める位置。startに非負の値を指定すると、 strspn() はsubjectのstart番目の位置から調査を始めます。 たとえば、文字列 'abcdef' において 0 番目の位置にある文字は 'a' で 2 番目の位置にある文字は 'c' のようになります。startに負の値を指定すると、 strspn() はsubjectの最後からstart番目の位置から調査を始めます。 -
length -
subject内で調べる部分の長さ。lengthに非負の値を指定すると、subjectの開始位置からlength文字ぶんの範囲を調査します。lengthに負の値を指定すると、subjectの調査範囲は 開始位置から始まってsubjectの最後からlengthだけさかのぼったところまでとなります。
返り値
subject の中で、全て
mask の中の文字からなる最初のセグメントの長さを返します。
注意:
startパラメータを設定した場合は、返される長さはその位置からのものとなります。subjectの先頭からの長さではありません。
例
例1 strspn() の例
<?php
// subjectの最初の文字がmaskのどの文字とも一致しません
var_dump(strspn("foo", "o"));
// subject のオフセット 1 から 2 文字を調べます
var_dump(strspn("foo", "o", 1, 2));
// subject のオフセット 1 から 1 文字を調べます
var_dump(strspn("foo", "o", 1, 1));
?>
上の例の出力は以下となります。
int(0) int(2) int(1)
注意
注意: この関数はバイナリデータに対応しています。