strcspn
(PHP 4, PHP 5, PHP 7)
strcspn — マスクにマッチしない最初のセグメントの長さを返す
説明
$subject
, string $mask
[, int $start
[, int $length
]] ) : int
subject において mask
の文字がどれも含まれていない最初のセグメントの長さを返します。
start と length
を省略した場合は、subject の全体を調べます。
これらのパラメータを指定した場合は、
strcspn(substr($subject, $start, $length),
$mask) のようにするのと同じ動きになります (詳細は substr
を参照ください)。
パラメータ
-
subject -
調べたい文字列。
-
mask -
許可しない文字をすべて含む文字列。
-
start -
subjectの中で調べ始める位置。startに非負の値を指定した場合は、 strcspn() は、subjectのstart番目の文字から調べ始めます。 たとえば 'abcdef' という文字列があったとすると、 0 番目の文字が 'a' で 2 番目の文字は 'c' のようになります。startに負の値を指定した場合は、 strcspn() は、subjectの後ろからstart番目の文字から調べ始めます。 -
length -
subjectの中での調べるセグメントの長さ。lengthに非負の値を指定した場合は、subjectの開始位置からlength文字ぶんだけ調べます。lengthに負の値を指定した場合は、subjectの開始位置から調べ始めて、subjectの末尾からlength文字目のところまで調べます。
返り値
subject の中で、
mask の文字をまったく含まない
最初のセグメントの長さを返します。
注意:
startを指定した場合は、その位置から長さを数え始めます。subjectの先頭から数えるわけではありません。
例
例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)
注意
注意: この関数はバイナリデータに対応しています。