php 中的strstr()与strchr()的区别

strstr()函数我知道,书上说strchr()函数与strstr()函数正好相反,该函数是从字符串后序的位置开始检索子串(子字符串)的。但是网上却说strstr()、strstr()两者是一样的

strchr()和strstr()是同义函数。功能效用完全一样。
echo strstr( '[email protected]', '@'); //默认返回查找值@之后的尾部,@123.com
echo strstr('[email protected]', '@', TRUE); //参数设定true, 返回查找值@之前的首部,abc
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-06-28
可以通过函数的定义来区别:
1.strstr:
[cpp] view plaincopy
char *strstr(const char *haystack, const char *needle)
可见,strstr函数搜索的是一个const char*型的数据,即字符串常量.

2.strchr:
[cpp] view plaincopy
char *strchr(const char *str, int c)
而strchr搜索的是一个int型的数据,即字符.

3.strrchr
[cpp] view plaincopy
char *strrchr(const char *str, int c)
另外,strrchr返回字符c在字符串str中最后出现的位置.本回答被网友采纳
第2个回答  2011-12-17
strchr 功能:查找字符串s中首次出现字符c的位置   说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
strstr 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
<?php
echo strstr("Hello world!","world");
?>
输出:
world!
第3个回答  2018-06-28
strstr() 和strchr() 是完全一致的两个函数,它们都是从第一次出现的位置往后显示结果
strrchr()函数就不一样了,是从最后一次出现的位置往后显示结果
如:
$a = "a@abc@cde";
strstr($a,'@'); 和 strchr($a,'@');
结果也是:@abc@cde
strstr($a,'@',true); 和 strchr($a,'@',true);
结果也是:a
而 strrchr($a,'@');
结果是:@cde