PHP在字符串中查询字符串子集的子串函数strspn()

我们在查询字符中某个字符串子段的时候,我们需要php的内置函数strspn函数,此函数可以查到要查的字符串的子段。注意是区分大小写的。

语法

strspn ( string $subject , string $mask [, int $start [, int $length ]] )

参数介绍:

  • $subject: 指定要查询的字符串,必须的参数。
  • $mask: 要查询的字符串,必须的参数(注:字符之间可以相互结合是否符合$subject字符串某子段,不分前后顺序)
  • $start: 可选的参数可以省略,默认是从头开始(规定从哪个位置开始查询)
  • $length: 也是可选的参数,规定查询$subject的长度。

返回值:返回查到的字符串子串的 长度。

代码1:下列代码,将介绍strspn函数的用法,不加start参数。

<?php

$subject_string = 'Welcome to sky8g learning';
$mask = 'W9le';
//因为变量$mask字符串W9le中存在的子串有Wel9,所以在$subject_string字符串中可以从头找到Wel, 所以输出为3
echo strspn($subject_string , $mask);

输出

3

代码2:下列代码,将介绍strspn函数含有start参数的应用。

<?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);

输出

5
5
4

代码3:下列代码,将介绍strspn函数含有start参数和length长度的应用。

<?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);

输出

2
5

参考 

http://php.net/manual/en/function.strspn.php

 

登录 评论
  订阅  
提醒