Заменить предварительную замену() на предварительную замену обратного вызова()


$source = preg_replace('/&#(\d+);/me', "utf8_encode(chr(\\1))", $source);

Приведенный выше код выдает устаревшее предупреждение.

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in 

Как я могу заменить preg_replace() на preg_replace_callback()?

Author: memmedimanli, 2014-05-06

2 answers

Прочитайте документацию здесь, http://www.php.net/manual/en/function.preg-replace-callback.php

Вот пример обратного вызова preg_replace_callback

$source = preg_replace_callback('/&#(\d+);/m', function($matches){
   return utf8_encode(chr($matches[1]));
}, $source);
 3
Author: Rob M., 2014-05-06 15:42:59
$source = preg_replace_callback
(
    '/\&\#(\d+)\;/m',
    function($match){
        return utf8_encode(chr($match[1]));
    },
    $source
);
 2
Author: Deadooshka, 2014-05-06 15:44:29