strcspn
マスクにマッチしない最初のセグメントの長さを返す
説明
int strcspn(
string $string,
string $characters,
int $offset = 0,
intnull $length = null
)
offset と length
を省略した場合は、string の全体を調べます。
これらのパラメータを指定した場合は、
strcspn(substr($string, $offset, $length),
$characters) をコールするのと同じ動きになります。
(詳細は 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 の先頭から数えるわけではありません。
例
例1 strcspn の例
<?php
$a = strcspn('banana', 'a');
$b = strcspn('banana', 'abcd');
$c = strcspn('banana', 'z');
$d = strcspn('abcdhelloabcd', 'a', -9);
$e = strcspn('abcdhelloabcd', 'a', -9, -5);
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
?>
int(1)
int(0)
int(6)
int(5)
int(4)
注意
注意: この関数はバイナリデータに対応しています。