(PHP 4, PHP 5, PHP 7)
strcspn — マスクにマッチしない最初のセグメントの長さを返す
$subject
, string $mask
[, int $start
[, int $length
]] )
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)
注意: この関数はバイナリデータに対応しています。