strcspn
(PHP 4, PHP 5, PHP 7)
strcspn — マスクにマッチしない最初のセグメントの長さを返す
説明
strcspn
( string $string
, string $characters
[, int $offset
= 0
[, int|null $length
= null
]] ) : int
string
において characters
の文字がどれも含まれていない最初のセグメントの長さを返します。
offset
と length
を省略した場合は、string
の全体を調べます。
これらのパラメータを指定した場合は、
strcspn(substr($subject, $start, $length), $mask)
のようにするのと同じ動きになります (詳細は substr
を参照ください)。
パラメータ
string
調べたい文字列。
characters
許可しない文字をすべて含む文字列。
offset
string
の中で調べ始める位置。offset
に非負の値を指定した場合は、 strcspn() は、string
のoffset
番目の文字から調べ始めます。 たとえば 'abcdef
' という文字列があったとすると、0
番目の文字が 'a
' で2
番目の文字は 'c
' のようになります。offset
に負の値を指定した場合は、 strcspn() は、string
の後ろからoffset
番目の文字から調べ始めます。length
string
の中での調べるセグメントの長さ。length
に非負の値を指定した場合は、string
の開始位置からlength
文字ぶんだけ調べます。length
に負の値を指定した場合は、string
の開始位置から調べ始めて、string
の末尾からlength
文字目のところまで調べます。
返り値
string
の中で、
characters
の文字をまったく含まない
最初のセグメントの長さを返します。
注意:
offset
を指定した場合は、その位置から長さを数え始めます。string
の先頭から数えるわけではありません。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | length は、nullable になりました。
|
例
例1 strcspn() の例
<?php$a = strcspn('abcd', 'apple');$b = strcspn('abcd', 'banana');$c = strcspn('hello', 'l');$d = strcspn('hello', 'world');$e = strcspn('abcdhelloabcd', 'abcd', -9);$f = strcspn('abcdhelloabcd', 'abcd', -9, -5);var_dump($a);var_dump($b);var_dump($c);var_dump($d);var_dump($e);var_dump($f);?>
上の例の出力は以下となります。
int(0) int(0) int(2) int(2) int(5) int(4)
注意
注意:
この関数はバイナリデータに対応しています。