mb_ereg_replace_callback
(PHP 5 >= 5.4.1)
mb_ereg_replace_callback — Realiza una búsqueda y sustitución de una expresión regular con soporte multibyte usando una llamada de retorno
Descripción
$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
callbackpara 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
- mb_regex_encoding() - Establece/obtiene la codificación de caracteres para expresiones regulares multibyte
- mb_ereg_replace() - Reemplaza una expresión regular con soprte multibyte
- create_function() - Crear una función anónima (estilo lambda)
- Funciones anónimas
- información acerca de tipos de llamada de retorno
