2011-08-16 11 views
0

strrchr関数をテストしていて、その振る舞いで困惑していました。それは、マッチするパターンの最後の出現から部分文字列を返すことになっています。例えば、strrchr関数による特異な振る舞い

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

が、これはそれが@ hotmail.comで、 "@" から部分文字列を返しますが、私はこの "熱い" ではなくtmail.comの

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

(Iを検索する場合予想通り)、hotmail.comをどうやって返すのか、他のパターンを検索すると結果は変わってしまいます。ありがとうございます

答えて

1

のみ最初の文字は、PHPのドキュメントに基づいて、検索に使用されます。針が複数の文字が含まれている場合

は、最初は

を使用しています。 この動作はstrstr()の動作とは異なります。

参照:SOあなたのポストは私の後ろにわずか11秒であったに応じhttp://php.net/manual/en/function.strrchr.php + +1

+0

、。 ;) – Rob

+0

ええ、素晴らしいタイミング:) +1: – pkk

2

プログラミングするときは、必ずドキュメントを確認してください。

この機能はの 最後の出現で始まり、干し草の山の最後まで行く干し草の山の一部を返します。strrchr()機能を使用すると、それがないと思う何をしません。

に複数の文字が含まれている場合は、最初の文字のみが使用されます。 この現象は、strstr()の動作とは異なります。

最初はstrstr()機能が必要でした。

関連する問題