我们在查询字符中某个字符串子段的时候,我们需要php的内置函数strspn函数,此函数可以查到要查的字符串的子段。注意是区分大小写的。
语法
1 | strspn ( string $subject , string $mask [, int $start [, int $length ]] ) |
参数介绍:
- $subject: 指定要查询的字符串,必须的参数。
- $mask: 要查询的字符串,必须的参数(注:字符之间可以相互结合是否符合$subject字符串某子段,不分前后顺序)
- $start: 可选的参数可以省略,默认是从头开始(规定从哪个位置开始查询)
- $length: 也是可选的参数,规定查询$subject的长度。
返回值:返回查到的字符串子串的 长度。
代码1:下列代码,将介绍strspn函数的用法,不加start参数。
1 2 3 4 5 6 7 | <?php $subject_string = 'Welcome to sky8g learning'; $mask = 'W9le'; //因为变量$mask字符串W9le中存在的子串有Wel9,所以在$subject_string字符串中可以从头找到Wel, 所以输出为3 echo strspn($subject_string , $mask); |
输出
1 | 3 |
代码2:下列代码,将介绍strspn函数含有start参数的应用。
1 2 3 4 5 6 7 8 9 10 11 | <?php $subject_string = 'Welcome to sky8g learning'; $mask = 's8kgy'; //因为变量$mask字符串s8kgy中存在的子串有sky8g,所以在$subject_string字符串中可以从第11个字符开始找到sky8g,此字符串为5个字符, 所以输出为5 echo strspn($subject_string , $mask,11); echo "<br/>"; //因为变量$mask字符串s8kgy中存在的子串有sky8g,所以在$subject_string字符串中可以从第倒数第14个字符开始找到sky8g,此字符串为5个字符, 所以输出为5 echo strspn($subject_string , $mask,-14); echo "<br/>"; //因为变量$mask字符串s8kgy中存在的子串有sky8g,所以在$subject_string字符串中可以从第倒数第12个字符开始找到ky8g,此字符串为4个字符, 所以输出为4 echo strspn($subject_string , $mask,12); |
输出
1 2 3 | 5 5 4 |
代码3:下列代码,将介绍strspn函数含有start参数和length长度的应用。
1 2 3 4 5 6 7 8 9 10 | <?php $subject_string = 'www.sky8g.com'; $mask = 's8kgy'; //因为变量$mask字符串s8kgy中存在的子串有sky8g, //所以在$subject_string字符串中可以从第4个字符开始找到sky8g, //此字符串为5个字符, 此时输出应该是5但是有长度的控制,为2个字符,所以最后输出为2 echo strspn($subject_string , $mask,4,2); echo "<br />"; echo strspn($subject_string , $mask,4,10); |
输出
1 2 | 2 5 |
参考
http://php.net/manual/en/function.strspn.php