微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP字符串学习之判断子串是不是存在大小写不敏感

字符串的比较和查找是最常见的操作,在之前的文章PHP字符串学习之比较两个字符串》中,我们介绍了比较字符串的方法。下面本篇文章带大家了解一下字符串查找操作,介绍一下检查子字符串是否存在的方法

在进行字符串查找操作时,有时会要求在某一字符串中查找指定的子字符串(简称子串),看看该子串是否存在于这个字符串中。

我们一般会通过使用PHP内置函数来查找这个子串在字符串的第一次或最后一次的出现位置来进行判断。而查找字符串有两种情况:一种是对大小写不敏感,即不区分大小写的查找;另外一种是对大小写敏感,即区分大小写的查找。下面我们就来看看不区分大小写要如何判断子串是不是存在。

我们来看看下面一下栗子。

<?PHP
header(Content-type:text/html;charset=utf-8);
$string = ABCDCBAbcd;
$findme = bC;
echo 子串  “'$findme'” 第一次出现的位置:.stripos($string, $findme);
echo <br>子串  “'$findme'” 最后一次出现的位置:.strripos($string, $findme);
?>

看看上例的代码,你们觉得这个结果会是什么?第一次出现的位置为“2”,最后一次出现的位置为“8”,对不对?我们来看一下输出结果:

2.png

哎呀,居然是“1”和“7”,为什么会这样?原因是:字符串位置起始于 0,而不是 1。我们按起始位置1来算当然不对。

因此我们就可以使用以下代码来判断子串是不是存在

<?PHP
header(Content-type:text/html;charset=utf-8);
$string = ABCDCBAbcd;
$findme = bC;

if(stripos($string, $findme)!=FALSE){
	echo 子串  “'$findme'” 在字符串  “'$string'” 中存在。;
}else{
	echo 子串  “'$findme'” 在字符串  “'$string'” 中不存在。;
}

if(strripos($string, $findme)!=FALSE){
	echo <br>子串  “'$findme'” 在字符串  “'$string'” 中存在。;
}else{
	echo <br>子串  “'$findme'” 在字符串  “'$string'” 中不存在。;
}
?>

输出结果:

4.png

下面我们具体看看这两个函数吧。

stripos($string,$find,$start)函数可以查找字符串在另一字符串中第一次出现的位置(不区分大小写)。

strripos($string,$find,$start)函数可以查找字符串在另一字符串中最后一次出现的位置(不区分大小写)。

这两个函数的参数是相似的,都接受两个必需参数$string$find一个可省略参数$start

  • $string参数:用于指定要被查找的字符串。

  • $find参数:用于指定要查找的子串,可以包含一个或者多字符。(如果不是字符串类型,那么它将被转换为整型并被视为字符顺序值)。

  • $start参数:用于指定从$string 中的哪个字符开始查找,返回的位置数字值仍然相对于 $string 的起始位置。

但strripos()函数$start参数允许使用负值,此时将使得查找从字符串的起始位置开始,到 $start 位置为止。

<?PHP
header(Content-type:text/html;charset=utf-8);
$string = ABCDCBAbcd;
$findme = bC;
echo 子串  “'$findme'” 第一次出现的位置:.stripos($string, $findme,2);
echo <br>子串  “'$findme'” 最后一次出现的位置:.strripos($string, $findme,-5);
?>

输出结果:

3.png

好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

最后给大家推荐阅读一个经典课程《PHP字符串处理(玉女心经版)》,免费的~快来学习啊!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐