(PHP 5 >= 5.4.1, PHP 7)
mb_ereg_replace_callback — Perform a regular expresssion seach and replace with multibyte support using a callback
$pattern
   , callable $callback
   , string $string
   [, string $option = "msr"
  ] ) : string
   Scans string for matches to
   pattern, then replaces the matched text
   with the output of callback function.  
  
    The behavior of this function is almost identical to mb_ereg_replace(), 
    except for the fact that instead of
    replacement parameter, one should specify a
    callback.
  
patternThe regular expression pattern.
       Multibyte characters may be used in pattern.
      
callback
        A callback that will be called and passed an array of matched elements
        in the  subject string. The callback should
       return the replacement string.
      
        You'll often need the callback function
        for a mb_ereg_replace_callback() in just one place.
        In this case you can use an
        anonymous function to
        declare the callback within the call to
        mb_ereg_replace_callback(). By doing it this way
        you have all information for the call in one place and do not
        clutter the function namespace with a callback function's name
        not used anywhere else.        
      
stringThe string being checked.
optionThe search option. See mb_regex_set_options() for explanation.
   The resultant string on success, or FALSE on error.
  
Note:
mb_regex_encoding() 指定的内部编码或字符编码将会当作此函数用的字符编码。
Example #1 mb_ereg_replace_callback() example
<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches)
{
  // as usual: $matches[0] is the complete match
  // $matches[1] the match for the first subpattern
  // enclosed in '(...)' and so on
  return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            "next_year",
            $text);
?>
以上例程会输出:
April fools day is 04/01/2003 Last christmas was 12/24/2002
Example #2 mb_ereg_replace_callback() using anonymous function supported in PHP 5.3.0 or later
<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            function ($matches) {
               return $matches[1].($matches[2]+1);
            },
            $text);
?>