PHP функции strcspn() и strspn()


Функция 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

Оцените статью
Procodings.ru
Добавить комментарий