# strcspn

(PHP 4, PHP 5, PHP 7)

strcspn — Find length of initial segment not matching mask

### Description

strcspn ( string `$subject` , string `$mask` [, int `$start` [, int `$length` ]] ) : int

Returns the length of the initial segment of `subject` which does not contain any of the characters in `mask`.

If `start` and `length` are omitted, then all of `subject` will be examined. If they are included, then the effect will be the same as calling `strcspn(substr($subject, $start, $length), $mask)` (see substr for more information).

### Parameters

`subject`

  The string to examine.

`mask`

  The string containing every disallowed character.

`start`

  The position in `subject` to start searching.

  If `start` is given and is non-negative, then strcspn() will begin examining `subject` at the `start`'th position. For instance, in the string '`abcdef`', the character at position `0` is '`a`', the character at position `2` is '`c`', and so forth.

  If `start` is given and is negative, then strcspn() will begin examining `subject` at the `start`'th position from the end of `subject`.

`length`

  The length of the segment from `subject` to examine.

  If `length` is given and is non-negative, then `subject` will be examined for `length` characters after the starting position.

  If `length` is given and is negative, then `subject` will be examined from the starting position up to `length` characters from the end of `subject`.

### Return Values

Returns the length of the initial segment of `subject` which consists entirely of characters not in `mask`.

> Note:

> When a `start` parameter is set, the returned length is counted starting from this position, not from the beginning of `subject`.

### Examples

Example #1 strcspn() example

`<?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);
?>`

The above example will output:

    int(0)
    int(0)
    int(2)
    int(2)
    int(5)
    int(4)

### Notes

> Note: This function is binary-safe.

### See Also

- strspn() - Finds the length of the initial segment of a string consisting entirely of characters contained within a given mask