(PHP 5 >= 5.4.1, PHP 7, PHP 8)
mb_ereg_replace_callback — Buscar y reemplazar mediante expresión regular con soporte multi byte utilizando una función de devolución de llamada
$pattern,$callback,$string,$options = null
   Busca los string que coinciden con el argumento
   pattern, luego reemplaza los textos que coinciden
   con el retorno de la función callback.
  
    El comportamiento de esta función es casi idéntico a mb_ereg_replace(),
    a excepción de que el argumento
    replacement debe especificar una función de devolución de llamada
    callback.
  
patternLa expresión regular.
       Los caracteres multi byte pueden ser utilizados en el pattern.
      
callback
        Un callback que será llamado y se le pasará un array de elementos coincidentes
        en la cadena de caracteres string. El callback debe retornar
        la cadena reemplazada.
      
        Con frecuencia será necesario utilizar la función callback
        para mb_ereg_replace_callback() solo una vez.
        En este caso se pueden utilizar las
        funciones anónimas para
        declarar una función de devolución de llamada al momento de llamar a la función
        mb_ereg_replace_callback(). Al hacerlo de esta manera
        se tiene toda la información necesaria para la llamada de la función
        en un solo lugar, lo que permite evitar saturar el espacio de nombres
        de las funciones con un callback de función que no se utiliza en otro lugar.
      
stringEl string que debe ser verificado.
optionsLa opción de búsqueda. Para más explicaciones, consulte mb_regex_set_options().
   Retorna un string en caso de éxito, o false en caso de error.
   Si string no es válido para el codificación actual,
   null es retornado.
  
| Versión | Descripción | 
|---|---|
| 8.0.0 | optionsahora es nullable. | 
| 7.1.0 | Esta función verifica si stringes válido para
        la codificación actual. | 
Ejemplo #1 Ejemplo con mb_ereg_replace_callback()
<?php
// este texto fue utilizado en 2002
// se desea actualizarlo para 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// la función de devolución de llamada
function next_year($matches)
{
  // como de costumbre: $matches[0] es la coincidencia completa
  // $matches[1] la coincidencia para el primer subpatrón
  // encerrado en '(...)' y así sucesivamente
  return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            "next_year",
            $text);
?>El ejemplo anterior mostrará:
April fools day is 04/01/2003 Last christmas was 12/24/2002
Ejemplo #2 mb_ereg_replace_callback() utilizando funciones anónimas
<?php
// este texto fue utilizado en 2002
// se desea actualizarlo para 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);
?>Nota:
The internal encoding or the character encoding specified by mb_regex_encoding() will be used as the character encoding for this function.
