PHP4 系で,文字列の最後の出現を探す。

昨日バイトで,上のことを,strrpos() 関数でできると思ってやっていたら,なんか挙動がおかしい。
で,マニュアル読むと,needle の最初の文字を探索しているだけだった。
げげんちょ。PHP5 だといけるみたいだけど。
結局,関数を自分で書くことに。

function my_strrpos( $haystack, $needle )
{
    $hay_len = strlen( $haystack ); // 最後の計算で使う。
    if ( false == strstr( $haystack, $needle ) ) {
        return false;
    }
    while ( false != ( $tmp = strstr( $haystack, $needle ) ) ) {
        $sub_str = $tmp;
        $haystack = $tmp;
        $haystack = substr( $haystack, strlen( $needle ) );
    }
    return $hay_len - strlen( $sub_str );
}

なんか,むつかしくやりすぎてる気がするな。。。
今回の場合は必ず,見つかるという前提があるので,力任せで探索した方が速いかも。
better solution プリーズ。