2011-08-16 30 views
0

我正在測試strrchr函數,並被其行爲困惑。它應該從匹配模式的最後一次出現處返回子字符串。例如,strrchr函數的奇特行爲

$test = '[email protected]'; 
echo strrchr($test,'@') ; 

這個返回子從 「@」,這是@ hotmail.com,但如果我搜索這個 「熱」

$test = '[email protected]'; 
echo strrchr($test,'example') ; 

代替tmail.com(我預計),它如何返回hotmail.com,如果我搜索其他模式,結果也很奇怪。謝謝

回答

1

只有第一個字符被用於搜索,基於php文件:

如果針頭包含多個字符,只使用第一個。 此行爲不同於strstr()的行爲。

見:http://php.net/manual/en/function.strrchr.php

+0

+1,根據SO您的文章是我的背後只有11秒。 ;) – Rob

+0

是的,很棒的時機:)爲你+1:> – pkk

2

無論何時編程,一定要檢查文檔。該strrchr()功能不會做你認爲它的作用:

該函數返回草堆它開始於的 最後出現並進入到草垛結束的部分。

如果包含多個字符,則只使用第一個字符。 此行爲與strstr()不同。

您可能首先需要strstr()函數。