strrchr函数的特殊行为

时间:2011-08-16 20:09:55

标签: php email

我正在测试strrchr函数,并对其行为感到困惑。它应该从匹配模式的最后一次出现返回子串。例如,

$test = 'example@hotmail.com';
echo strrchr($test,'@') ;

这会返回“@”的子字符串,即@ hotmail.com,但如果我搜索这个“热门”

$test = 'example@hotmail.com';
echo strrchr($test,'example') ;

而不是tmail.com(我预料到),它如何返回hotmail.com,如果我搜索其他模式,结果也很奇怪。谢谢

2 个答案:

答案 0 :(得分:2)

每当编程时,请务必查看文档。 strrchr()函数没有按照您的想法执行:

  

此函数返回从 haystack 开始的部分   最后一次出现 needle 并一直到 haystack 结束。

     

如果 needle 包含多个字符,则仅使用第一个字符。   此行为与strstr()的行为不同。

您可能首先需要strstr()功能。

答案 1 :(得分:1)

根据php文档,只使用第一个字符进行搜索:

  

如果针包含多个字符,则仅使用第一个字符。   此行为与strstr()的行为不同。

请参阅:http://php.net/manual/en/function.strrchr.php