Description

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.

Parameters

pattern

The 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.

Matching condition can be set by option
parameter. If i is specified for this
parameter, the case will be ignored. If x is
specified, white space will be ignored. If m
is specified, match will be executed in multiline mode and line
break will be included in '.'. If p is
specified, match will be executed in POSIX mode, line break
will be considered as normal character. Note that e
cannot be used for mb_ereg_replace_callback().

Return Values

Notes

Note:

The internal encoding or the
character encoding specified by mb_regex_encoding()
will be used as the character encoding for this function.

Examples

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 functionfunction next_year($matches){// as usual: $matches[0] is the complete match // $matches[1] the match for the first subpattern // enclosed in '(...)' and so onreturn $matches[1].($matches[2]+1);}echo mb_ereg_replace_callback("(\d{2}/\d{2}/)(\d{4})","next_year",$text);

?>

The above example will output:

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