php如何检测子字符串是否存在

这篇“php如何检测子字符串是否存在”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何检测子字符串是否存在”文章吧。

目前成都创新互联已为成百上千的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、霍山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

4种方法:1、用stripos()查找子串的出现位置,语法“stripos(字符串,子串)”;2、用strripos()查找子串的的出现位置,语法“strripos(字符串,子串)”;3、用strpos()查找子串的出现位置,语法“strpos(字符串,子串)”;4、用strrpos()查找子串的出现位置,语法“strrpos(字符串,子串)”。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

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

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

情况一:判断子串是不是存在(大小写不敏感)

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

子串  “'$findme'” 最后一次出现的位置:".strripos($string, $findme);
?>

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

php如何检测子字符串是否存在

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

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

子串  “'$findme'” 在字符串  “'$string'” 中存在。";
}else{
	echo "
子串  “'$findme'” 在字符串  “'$string'” 中不存在。"; } ?>

输出结果:

php如何检测子字符串是否存在

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

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

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

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

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

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

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

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

子串  “'$findme'” 最后一次出现的位置:".strripos($string, $findme,-5);
?>

输出结果:

php如何检测子字符串是否存在

情况2:检测子串是不是存在(大小写敏感)

我们来看看下面一下示例

子串  '$findme1' 在字符串  '$string' 中存在。";
}else{
	echo "
子串  '$findme1' 在字符串  '$string' 中不存在。"; } if($pos3 !=FALSE){ echo "
子串  '$findme2' 在字符串  '$string' 中存在。"; }else{ echo "
子串  '$findme2' 在字符串  '$string' 中不存在。"; } if($pos4 !=FALSE){ echo "
子串  '$findme2' 在字符串  '$string' 中存在。"; }else{ echo "
子串  '$findme2' 在字符串  '$string' 中不存在。"; } ?>

strpos()和strrpos()函数会区分大小写的在字符串$string中查找子串$findme1或者$findme2。当完全匹配上,存在子串时,会返回子串在字符串的第一次或最后一次的出现位置;如果在字符串的没有找到子串,则返回FALSE

从上面的例子可以看出,只有子串"bc"和字符串“ABCDCBAbcd”是完全匹配,子串"bc"被认为是存在于字符串“ABCDCBAbcd”中的。因此输出结果为:

php如何检测子字符串是否存在

下面我们来详细了解一下strpos()和strrpos()函数。

  • strpos($string,$find,$start)函数可以返回子字符串首次出现的位置(区分大小写);

  • strrpos($string,$find,$start)函数可以返回子字符串最后一次出现的位置(区分大小写);

strpos()和strrpos()函数相似,都接受两个必需参数$string(被查找的字符串)和$find(要查找的子串),一个可省略参数$start(查找的开始位置)。注:字符串位置起始于 0,而不是 1。

子串  '$findme1' 最后一次出现的位置:".strrpos($string, $findme1);
echo "
子串  '$findme2' 第一次出现的位置:".strpos($string, $findme2); echo "
子串  '$findme2' 最后一次出现的位置:".strrpos($string, $findme2); ?>

输出结果:

php如何检测子字符串是否存在

但strrpos()函数的参数$start可以接受负值,当它为负数时,将会导致查找在字符串结尾处开始的计数位置处结束。

子串  '$findme1' 最后一次出现的位置:".strrpos($string, $findme1,-5);
echo "
子串  '$findme2' 第一次出现的位置:".strpos($string, $findme2); echo "
子串  '$findme2' 最后一次出现的位置:".strrpos($string, $findme2,-5); ?>

输出结果:

php如何检测子字符串是否存在

以上就是关于“php如何检测子字符串是否存在”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


当前文章:php如何检测子字符串是否存在
浏览地址:http://myzitong.com/article/poshhe.html