strrpos: 文字列の中に、ある部分の文字列が最後に現れる場所を探す
int strrpos(string $haystack, string $needle)
echo strrpos("あいうえお", "う");
6?
あれ?どういうことだ?
echo strrpos("phpengineer", "h");
1
あれ、半角英数字だと上手くいく。日本語だと駄目なのか?
echo strrpos("日本語で試します", "で");
9
あ、わかった、これはバイト数でカウントしてるんだな。
日本語は一文字3バイトだから、012, 345, 678, 9
で、9ということだろう。
試しに4バイトの漢字を入れてみましょう。
「𡈽」を使ってみます。
参考: UTF-8で4バイトになる文字 https://www.softel.co.jp/blogs/tech/archives/596
echo strrpos("𡈽は4バイトです", "は");
4
あ、やっぱりそうですね。
なるほどー