PHP踩过的坑

strpos()函数

strpos — 查找字符串首次出现的位置

用法: int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

注意:
stripos()返回的是字符串在另一个字符串出现的位置,而这个位置是从0开始计算的。
查到的字符串正好在第一个位置,则返回0;

错误写法:

$a = "新年快乐";
$b = "新年";
if(strpos($a,$b)){
	echo 1;
}else{
	echo 2;
}

返回值: 2

如果没有匹配到 $needle ,strpos() 将返回布尔型的 FALSE 值;但也可能返回等同于 FALSE 的非.布尔值,例如 0 或 “”(空串)。所以用恒等于’= = =’ 或者恒不等于 '!=='来判断。

正确写法:

$a = "新年快乐";
$b = "新年";
if(strpos($a,$b) !== false){
	echo 1;
}else{
	echo 2;
}

返回值: 1

扩展

  1. 类似的函数还有:

strrpos() - 计算指定字符串在目标字符串中最后一次出现的位置
stripos() - 查找字符串首次出现的位置(不区分大小写)
strripos() - 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)

  1. 判断一个字符串是否在另一个字符串中还有一个函数:strstr()。与strpos()有一点不同是,该函数的返回值是false或者字符串的一部分。如果单纯的判断两个字符串的包含关系,最好使用strpos,因为速度更快、耗费内存更少。

猜你喜欢

转载自blog.csdn.net/kongkonghuawei/article/details/87086405