(PHP 5 >= 5.4.1, PHP 7)

mb_ereg_replace_callbackPerform a regular expression search and replace with multibyte support using a callback


mb_ereg_replace_callback ( string $pattern , callable $callback , string $string [, string|null $options = null ] ) : string|false|null

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.



The regular expression pattern.

Multibyte characters may be used in pattern.


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.


The string being checked.


The search option. See mb_regex_set_options() for explanation.

Valor Retornado

The resultant string on success, or false on error. If string is not valid for the current encoding, null is returned.



A codificação interna ou a codificação de caractere especificado por mb_regex_encoding() será usado como a codificação de caractere para esta função.


Versão Descrição
8.0.0 options is nullable now.
7.1.0 The function checks whether string is valid for the current encoding.


Exemplo #1 mb_ereg_replace_callback() example

// 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);


O exemplo acima irá imprimir:

April fools day is 04/01/2003
Last christmas was 12/24/2002

Exemplo #2 mb_ereg_replace_callback() using anonymous function supported in PHP 5.3.0 or later

// 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";

            function (
$matches) {

Veja Também

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top