You can use this following function
function str_rsplit($string, $length)
{
// splits a string "starting" at the end, so any left over (small chunk) is at the beginning of the array.
if ( !$length ) { return false; }
if ( $length > 0 ) { return str_split($string,$length); }
$l = strlen($string);
$length = min(-$length,$l);
$mod = $l % $length;
if ( !$mod ) { return str_split($string,$length); }
return array_merge(array(substr($string,0,$mod)), str_split(substr($string,$mod),$length));
}
$str = '123456789';
str_split($str,5);
str_rsplit($str,5);
str_rsplit($str,-7);