This question already has an answer here:
$source = preg_replace('/&#(\d+);/me', "utf8_encode(chr(\\1))", $source);
The above code gives deprecated warning.
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in
How can I replace preg_replace() to preg_replace_callback() ?
Read the documentation here, http://www.php.net/manual/en/function.preg-replace-callback.php
Here is an example of preg_replace_callback
$source = preg_replace_callback('/&#(\d+);/m', function($matches){
return utf8_encode(chr($matches[1]));
}, $source);
$source = preg_replace_callback
(
'/\&\#(\d+)\;/m',
function($match){
return utf8_encode(chr($match[1]));
},
$source
);
来源:https://stackoverflow.com/questions/23498399/replace-preg-replace-to-preg-replace-callback