strspn()

1. 定义

该函数查找一段连续在指定字符列表中出现的子字符串的长度。

注:

  • 查找的子字符串的每个字符必须都在字符列表内

2. 语法

strspn(string $haystack, string $char_list [, int $start [, int $length]]) : int

3. 参数说明

参数 可选性 数据类型 描述
$haystack 必需 字符串 被搜索的源字符串
$char_list 必需 字符串 要搜索的字符列表
$start 可选 整型 搜索开始的位置索引值,默认为0,从$haystack最左边开始搜索
$length 可选 整型 最大搜索长度($length + $offset的和不能超过$haystack的值)

4. 示例

<?php

// strspn()
// 查找一段连续在指定字符列表中出现的子字符串的长度

// 搜索结果 42 ,长度为 2
$haystack = strspn("42 is the answer to the 128th question.", "1234567890");
var_dump($haystack);// 输出:int(2)

// 搜索结果 hell
$haystack = strspn("hello world PHP 666!", "hell");
var_dump($haystack);// 输出:int(4)

// 搜索结果 hell
$haystack = strspn("hello world PHP 666!", "elh");
var_dump($haystack);// 输出:int(4)

// 用来检验号码格式是否正确
$haystack = '13867896743';// 待检查的字符串
$char_list = '0123456789';// 字符列表
if(strlen($haystack) !== strspn($haystack, $char_list)) {
    echo '您输入的号码含有违法字符!',"\n";
} else {
    echo '号码格式正确!',"\n";
}
/* 输出:
号码格式正确!
*/

5. 延展阅读

  • strcspn():返回在字符列表中,找到指定字符串中第一次出现字符列表中字符的前面字符的位数