(PHP 4, PHP 5, PHP 7)
strspn — Возвращает длину участка в начале строки, полностью соответствующего маске
Описание
$subject
, string $mask
[, int $start
[, int $length
]] )Возвращает длину участка от начала строки subject
, содержащий только символы из mask
.
Если параметры start
и length
не указаны, то будет исследована вся строка subject
. Если они указаны, то эффект будет аналогичен вызову
strspn(substr($subject, $start, $length) $mask
) (подробнее см. функцию substr).
Строка кода:
<?php $var = strspn("42 is the answer to the 128th question.", "1234567890"); ?>
присвоит 2 переменной $var, так как «42» — это начальный участок строки subject
, состоящий только из символов «1234567890».
Список параметров
subject
-
Исследуемая строка.
mask
-
Список из разрешенных символов.
start
-
Позиция начала поиска в
subject
.Если
start
указан и неотрицателен, то strspn() начнет искать в строкеsubject
начиная с позицииstart
. К примеру, в строке ‘abcdef‘, символом с позицией 0 является ‘a‘, символом с позицией 2 является ‘c‘ и т.д.Если
start
указан и отрицателен, то strspn() начнет поиск в строкеsubject
с позиции, отстоящей наstart
символов с концаsubject
. length
-
Длина исследуемого фрагмента
subject
.Если
length
указан и неотрицателен, то строкаsubject
будет исследована в течениеlength
после стартовой позиции.Если
length
указан и отрицателен, то строкаsubject
будет исследована начиная со стартовой позиции до позиции, отстоящей наlength
символов с концаsubject
.
Возвращаемые значения
Возвращает длину первого участка subject
, состоящего целиком из символов в mask
.
Замечание:
Когда
start
указан, возращаемая длина строки определяется начиная с этой позиции, а не с начала строкиsubject
.
Примеры
Пример #1 Пример использования strspn()
<?php // subject не начинается ни из какого символа из mask var_dump(strspn("foo", "o")); // проверить два символа из subject начиная с позиции 1 var_dump(strspn("foo", "o", 1, 2)); // проверить один символ из subject начиная с позиции 1 var_dump(strspn("foo", "o", 1, 1)); ?>
Результат выполнения данного примера:
int(0) int(2) int(1)
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.