目录
【1】strstr 、strchr、stristr、strrchr函数
【2】strpos、stripos、strrpos、strripos函数
【小结】
作用:
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
函数:
strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
参数:
$haystack 输入字符串。 $needle 查找字符串。
$befor_needle 若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
返回值:
返回字符串的一部分或者 FALSE(如果未发现 needle)。
//strstr strchr
$haystack = '[email protected]';
echo strstr($haystack,'@'),'
';//向后查找 输出@qq.com
echo strstr($haystack,'@',true),'
';//向前查找 输出tacks321
echo strchr($haystack,'qq'),'
';//strstr同strchr 输出qq.com
//stristr stristr — strstr() 函数的忽略大小写版本
echo stristr($haystack,'Tacks'),'
';//忽略大小写 输出[email protected]
//strrchr — 查找指定字符在字符串中的最后一次出现
echo strstr('Name:Tacks',':P'),'
';//没有找到False
echo strrchr('Name:Tacks', ":P"),'
';//只匹配第一个字符,输出:Tacks
这些函数通常可以快速某一个字符串是否在另一个字符串中。
作用:
返回 needle 在 haystack 中首次出现的数字位置。
函数:
strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
参数:
$haystack 在该字符串中查找 $needle查找子字符串 $offset查找字符串偏移量
返回值:
返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。
同时注意字符串位置是从0开始,而不是从1开始的。
如果没找到 needle,将返回 FALSE。
$haystack = 'Tacks is my name';
$needle = 'Tacks';
$res = strpos($haystack,$needle);
//这里不能用!=判断,因为是在第一个位置即0,应该用全等或者全不等去判断
if( $res !== false){
echo '$haystack contain $needle and position=',$res,'
';
}else{
echo '$haystack not contain $needle','
';
}
// 忽视位置偏移量之前的字符进行查找
$haystack = 'TacksTacksTacks';
echo strpos($haystack, 'Tacks', 0),'
';//0
echo strpos($haystack, 'Tacks', 1),'
';//5
echo strpos($haystack, 'Tacks', 10),'
';//10
echo stripos('TNT_Tacks-tacks-TACKS','tacks'),'
';//4 忽略大小写进行查找匹配
echo strrpos('Tacks and Tacks','Tacks'),'
';//10 最后一个Tacks的位置
echo strrpos('Tacks and Tacks','Tacks'),'
';//10 最后一个Tacks的位置