MB_EREG_REPLACE_CALLBACK(3) 1 MB_EREG_REPLACE_CALLBACK(3)
mb_ereg_replace_callback - Perform a regular expresssion seach and replace with multibyte support using a callback
SYNOPSIS
string mb_ereg_replace_callback (string $pattern, callable $callback, string $string, [string $option = "msr"])
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(3), except for the fact that instead of $replacement parameter, one
should specify a $callback.
PARAMETERS
o $pattern
- The regular expression pattern. Multibyte characters may be used in $pattern.
o $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(3) 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(3). 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.
o $string
- The string being checked.
o $option
- 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(3).
RETURN VALUES
The resultant string on success, or FALSE on error.
NOTES
Note
The internal encoding or the character encoding specified by mb_regex_encoding(3) will be used as the character encoding for this
function.
EXAMPLES
Example #1
mb_ereg_replace_callback(3) 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
";
$text.= "Last christmas was 12/24/2001
";
// 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);
?>
The above example will output:
April fools day is 04/01/2003
Last christmas was 12/24/2002
Example #2
mb_ereg_replace_callback(3) 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
";
$text.= "Last christmas was 12/24/2001
";
echo mb_ereg_replace_callback(
"(d{2}/d{2}/)(d{4})",
function ($matches) {
return $matches[1].($matches[2]+1);
},
$text);
?>
SEE ALSO
mb_regex_encoding(3), mb_ereg_replace(3), Anonymous functions, information about the callback type.
PHP Documentation Group MB_EREG_REPLACE_CALLBACK(3)