mb_strrchr in php 5.1 for compatibility

I needed php’s mb_strrchr function, which is only in php 5.2+. However, my workplace is stuck in php 5.1 and cannot upgrade to php 5.2.

I decided to write a forwards-compatible mb_strrchr() that worked in php 5.1 at least. Please test thoroughly before using. It seemed to work great for the cases I needed it for:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// php 5.1 compat
if( !function_exists('mb_strrchr') ) {
    function mb_strrchr( $haystack, $needle, $part = false, $encoding = '' ) {
         
        $pos = mb_strrpos( $haystack, $needle, $encoding );
        if( $pos === false ) return false;
         
        if( $part === true ) {
            return mb_strcut( $haystack, 0, $pos, $encoding );
        } else {
            return mb_strcut( $haystack, $pos, mb_strlen($haystack), $encoding );
        }
    }
}