(PHP 7, PHP 8)
preg_replace_callback_array — Realiza una búsqueda de coincidencia con una expresión regular y reemplaza mediante una función de devolución de llamada
$pattern,$subject,$limit = -1,&$count = null,$flags = 0El comportamiento de esta función es similar a preg_replace_callback(), con la excepción de que las funciones de devolución de llamada se ejecutan para cada patrón.
patternUn array asociativo que establece una relación entre los patrones (claves) y las funciones de devolución de llamada callable (valores).
subjectLa string o array que contiene los string a buscar y reemplazar.
limit
El número máximo de reemplazos para cada patrón en cada
string subject. Por omisión
-1 (sin límite).
countSi se proporciona, esta variable será rellenada con el número de reemplazos realizados.
flags
flags puede ser una combinación de los indicadores
PREG_OFFSET_CAPTURE y
PREG_UNMATCHED_AS_NULL, que influyen en el formato
del array de coincidencias.
Ver la descripción de preg_match() para más detalles.
preg_replace_callback_array() devuelve un array si
el parámetro subject es un array, o de lo contrario
una string. En caso de error, el valor devuelto es null.
Si se encuentran coincidencias, el nuevo sujeto será devuelto, de lo contrario
subject será devuelto sin cambios.
Si el patrón regex pasado no se compila a una regex válida, se emite una E_WARNING.
| Versión | Descripción |
|---|---|
| 7.4.0 |
El parámetro flags ha sido añadido.
|
Ejemplo #1 Ejemplo de preg_replace_callback_array()
<?php
$subject = 'Aaaaaa Bbb';
preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo strlen($match[0]), ' coincidencias de "a" encontradas', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo strlen($match[0]), ' coincidencias de "b" encontradas', PHP_EOL;
}
],
$subject
);
?>El ejemplo anterior mostrará :
6 coincidencias de "a" encontradas 3 coincidencias de "b" encontradas