(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)
Замечание: Функция безопасна для обработки данных в двоичной форме.