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