(PHP 4, PHP 5, PHP 7, PHP 8)
strcspn — Находит длину начального фрагмента строки, который не соответствует маске
Функция возвращает длину начального фрагмента строки string,
который не содержит ни одного символа из строки
characters.
Функция проверит всю строку string,
если аргументы offset и length
не передали.
Эффект будет аналогичным вызову
strcspn(substr($string, $offset, $length), $characters),
если аргументы передали.
Дополнительную информацию даёт описание функции substr.
stringСтрока, которую требуется проверить.
charactersСтрока с запрещёнными символами.
offset
Позиция в строке string, с которой требуется начать поиск.
Функция strcspn() начнёт проверку строки
string с позиции смещения offset,
если в параметр offset передали неотрицательное значение.
Например: в строке "abcdef" в позиции 0
стоит символ "a", в позиции 2 — символ "c"
и так далее.
Функция strspn() начнёт проверку строки string
с позиции смещения offset с конца строки string,
если в параметр offset отрицательное значение.
length
Фрагмент какой длины требуется проверить в строке string.
Функция проверит в строке string
столько символов с позиции смещения и до конца строки,
сколько указали в аргументе length,
если в параметр length передали неотрицательное значение.
Функция проверит в строке string
столько символов с позиции смещения и до начала строки,
сколько указали в аргументе length,
если в параметр length передали отрицательное значение.
Функция возвращает длину начального фрагмента строки string,
которая состоит только из символов, которые не содержатся
в аргументе characters.
Замечание:
При установке параметра
offsetфункция возвращает и отсчитывает длину фрагмента с позиции смещения, а не с начала строкиstring.
| Версия | Описание |
|---|---|
| 8.4.0 |
До PHP 8.4.0 при передаче в параметр characters
пустой строки поиск ошибочно останавливался на первом NUL-байте
в аргументе string.
|
| 8.0.0 |
Параметр length теперь принимает значение null.
|
Пример #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)
Замечание: Функция безопасна для обработки данных в двоичной форме.