Функция strcspn()
Функция strcspn()
находит длину начального сегмента, не совпадающего с маской.
В приведенном ниже фрагменте кода мы хотим найти длину префикса почтового индекса Великобритании. CF34 9LH
– это строка почтового индекса, а список запрещенных символов – 0123456789
. Функция strcspn()
вызывается для нахождения длины начального сегмента, не содержащего цифр. Итак, CF
– это сегмент строки, длина которого равна 2.
$p = strcspn('CF34 9LH', '0123456789');
echo "The length is " . $p;
//The length is 2
Затем вы можете легко получить префикс почтового индекса следующим образом:
$postCode = 'CF34 9LH';
$postPrefix = substr($postCode, 0, strcspn($postCode, '0123456789'));
echo "The prefix is " . $postPrefix;
//The prefix is CF
Вы также можете использовать функцию strcspn()
для проверки имени файла на наличие в нем недопустимых символов.
$str = "filename123$/@456";
$invalidChars = "\/*@$";
$validLen = strcspn($str, $invalidChars);
if ($validLen != strlen($str)) {
echo "Invalid character found at position " . $validLen;
//Invalid character found at position 11
}
В приведенном выше фрагменте кода, поскольку строка имени файла $str
содержит недопустимые символы, длина начального сегмента, т.е. filename123
, не совпадает с длиной всей строки имени файла. Поэтому выводится сообщение об ошибке.
Функция strspn()
Напротив, функция strspn()
получает длину начального сегмента строки, которая полностью состоит из символов, содержащихся в заданной маске.
…
Для ознакомления с остальным содержанием, пожалуйста, перейдите по ссылке ниже:
https://www.codebilby.com/blog/a40-php-functions-strcspn-and-strspn