一、strstr stristr strchr这三个函数是一拨的:
查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始。
mixed strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
参数说明:
haystack
在该字符串中进行查找。
needle
如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值来使用。
before_needle
若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。(注意不包含查找字符串本身)
返回值
成功:返回字符串 needle 之前或之后的一部分
失败:如果没找到 needle,将返回 FALSE。
区别
- strchr是strstr的别名,两人是一毛一样的
- strstr是区分大小写的,stristr不区分大小写
二、strrchr单独一拨
查找字符串的最后一次出现,返回字符串从最后一次出现的位置开始到该字符串的结尾。
mixed strrchr ( string $haystack , mixed $needle )
参数说明:
haystack
在该字符串中进行查找。
needle
如果 needle 包含了不止一个字符,那么仅使用第一个字符。
如果 needle 不是一个字符串,那么将被转化为整型并被视为字符顺序值。
返回值
成功:返回字符串 needle 之后的一部分
失败:如果没找到 needle,将返回 FALSE。
三、区别
这两拨(第一拨以strstr代替)的主要区别:
1,strstr是查找字符串第一次出现,strrchr是最后一次出现
$email = 'name@example.com';
echo strst($email, 'a'); //输出 ame@example.com
echo strrchr($email, 'a'); //输出 ample.com
2,如果 needle 包含多个字符,strrchr仅使用第一个字符, strstr()全部使用
$email = 'name@example.com';
echo strst($email, 'ex'); //输出 example.com
echo strrchr($email, 'ex'); //输出 e.com
3,strstr有三个参数,最后一个参数决定是取查找字符之前或之后的,而strrchr只有两个参数,且只能取之后的
$email = 'name@example.com';
echo strst($email, '@', false); //输出 @example.com
echo strst($email, '@', true); //输出 name
echo strrchr($email, '@'); //@example.com