strspn

Finds the length of the initial segment of a string consisting entirely of characters contained within a given mask.

&reftitle.description; `int` `strspn` `string` `subject` `string` `mask` `int` `start` `int` `length`

Finds the length of the initial segment of `subject` that contains only characters from `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 `strspn(substr($subject, $start, $length), $mask)` (see function.substr for more information).

The line of code:

    <?php
    $var = strspn("42 is the answer to the 128th question.", "1234567890");
    ?>

will assign `2` to `$var`, because the string "42" is the initial segment of `subject` that consists only of characters contained within "1234567890".
&reftitle.parameters;

`subject`

- The string to examine.

`mask`

- The list of allowable characters.

`start`

- The position in `subject` to start searching.

  If `start` is given and is non-negative, then `strspn` 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 `strspn` 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`.

&reftitle.returnvalues;

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

&reftitle.changelog;

&Version; | &Description;
4.3.0 | The `start` and `length` parameters were added

&reftitle.examples;

### `strspn` example

    <?php
    // subject does not start with any characters from mask
    var_dump(strspn("foo", "o"));

    // examine two characters from subject starting at offset 1
    var_dump(strspn("foo", "o", 1, 2));

    // examine one character from subject starting at offset 1
    var_dump(strspn("foo", "o", 1, 1));
    ?>

&example.outputs;

    int(0)
    int(2)
    int(1)

&reftitle.notes; ¬e.bin-safe;
&reftitle.seealso;

- `strcspn`