Php/docs/function.strspn

提供:Dev Guides
< Php
移動先:案内検索

strspn

(PHP 4, PHP 5, PHP 7)

strspn 指定したマスク内に含まれる文字からなる文字列の最初のセグメントの長さを探す


説明

strspn ( string $string , string $characters [, int $offset = 0 [, int|null $length = null ]] ) : int

string の中で、 characters 内の文字だけを含む最初の部分の長さを返します。

offsetlength を省略した場合は、string 全体を調べます。 指定した場合は、strspn(substr($subject, $start, $length), $mask) (詳細は substr を参照ください) をコールするのと同じ働きをします。

たとえば、

<?php$var = strspn("42 is the answer to the 128th question.", "1234567890");?>

このコードは、$var2 を代入します。これは、 string の中で "1234567890" 内の文字だけで構成される 最初の部分が "42" であるためです。

パラメータ

string

調べたい文字列。

characters

許可する文字の一覧。

offset

string の中で調べ始める位置。

offset に非負の値を指定すると、 strspn()stringoffset 番目の位置から調査を始めます。 たとえば、文字列 '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)

注意

注意:

この関数はバイナリデータに対応しています。

参考

  • strcspn() - マスクにマッチしない最初のセグメントの長さを返す