Funciones de cadenas de caracteres multibyte
PHP Manual

mb_ereg_replace_callback

(No hay información de versión disponible, podría estar únicamente en SVN)

mb_ereg_replace_callbackRealiza una búsqueda y sustitución de una expresión regular con soporte multibyte usando una llamada de retorno

Descripción

string mb_ereg_replace_callback ( string $pattern , callable $callback , string $string [, string $option = "msr" ] )

Examina string para buscar coincidencias con pattern, luego reemplaza el texto coincidente con la salida de la función callback.

El comportamiento de esta función es casi idéntico al de mb_ereg_replace(), excepto que en lugar del parámetro replacement, se debería especificar una llamada de retorno dada por callback.

Esta función está disponible en PHP 5.4.1 o posterior.

Parámetros

pattern

El patrón de la expresión regular.

Se pueden usar caracteres multibyes en pattern.

callback

Una llamada de retorno que será invocada y se le proporcionará un array de elementos coincidentes en el string subject. La llamada de retorno debería devolver el string de sustitución.

A menudo será necearia la función callback para una mb_ereg_replace_callback() en un sólo lugar. En este caso se puede usar una función anónima (desde PHP 5.3.0) o create_function() para declarar una función anónima como llamada de retorno dentro de la llamada a mb_ereg_replace_callback(). De esta manera se tendrá toda la información para la llamada en un lugar para no abarrotar el espacion de nombres de funciones con un nombre de de una función de llamada de retorno que no se usará.

string

El string a comprobar.

option

Las condiciones de comparación se pueden establecer por el parámetro option. Si se especifica i para este parámetro, no se tendrán en cuenta las mayúsculas/minúsculas. Si se especifica x, se ingorarán los espacios en blanco. Si se especifica m, la comparación se ejecutará en modo multilínea y se incluirán los saltos de línea en '.'. Si se especifica p, la comparación se ejecutará en modo POSIX, por lo que los saltos de línea se cosiderarán como caracteres normales. Observe que e no se puede usar en mb_ereg_replace_callback().

Valores devueltos

El string resultante en caso de éxito, o FALSE en caso de error.

Notas

Nota:

La codificación interna o la codificación especificada por mb_regex_encoding() será usada en esta función.

Ejemplos

Ejemplo #1 Ejemplo de mb_ereg_replace_callback()

<?php
// este texto se uso en 2002
// queremos obtener esto para fechas hasta 2003
$texto "El día de los Santos Inocentes es el 28/12/2002\n";
$texto.= "Las últimas navidades fueron el 24/12/2001\n";
// la función de llamada de retonro
function siguiente_año($coincidencias)
{
  
// como siempre: $coincidencias[0] es la coincidencia completa
  // $coincidencias[1] la coincidencia para el primer subpatrón
  // encerrado entre '(...)', etc.
  
return $coincidencias[1].($coincidencias[2]+1);
}
echo 
mb_ereg_replace_callback(
            
"(\d{2}/\d{2}/)(\d{4})",
            
"siguiente_año",
            
$texto);

?>

El resultado del ejemplo sería:

El día de los Santos Inocentes es el 28/12/2003
Las últimas navidades fueron el 24/12/2002

Ejemplo #2 mb_ereg_replace_callback() usando una función anónima admitida en PHP 5.3.0 o posterior

<?php
// este texto se uso en 2002
// queremos obtener esto para fechas hasta 2003
$texto "El día de los Santos Inocentes es el 28/12/2002\n";
$texto.= "Las últimas navidades fueron el 24/12/2001\n";

echo 
mb_ereg_replace_callback(
            
"(\d{2}/\d{2}/)(\d{4})",
            function (
$coincidencias) {
               return 
$coincidencias[1].($coincidencias[2]+1);
            },
            
$texto);
?>

Ver también


Funciones de cadenas de caracteres multibyte
PHP Manual