альтернатива для функции preg_replace e / modifier

Любой знает, как изменить эту функцию с помощью preg_replace и e / modifier. E / modifier будет обесцениваться.

function charset_decode_utf_8 ($string) { /* Only do the slow convert if there are 8-bit characters */ /* avoid using 0xA0 (\240) in ereg ranges. RH73 does not like that */ if (! preg_match("/[\200-\237]/", $string) and ! preg_match("/[\241-\377]/", $string)) return $string; // decode three byte unicode characters $string = preg_replace("/([\340-\357])([\200-\277])([\200-\277])/e", "'&#'.((ord('\\1')-224)*4096 + (ord('\\2')-128)*64 + (ord('\\3')-128)).';'", $string); // decode two byte unicode characters $string = preg_replace("/([\300-\337])([\200-\277])/e", "'&#'.((ord('\\1')-192)*64+(ord('\\2')-128)).';'", $string); return $string; } 

Related of "альтернатива для функции preg_replace e / modifier"