preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_arrayRealiza una búsqueda de coincidencia con una expresión regular y reemplaza mediante una función de devolución de llamada

Descripción

preg_replace_callback_array(
    array $pattern,
    string|array $subject,
    int $limit = -1,
    int &$count = null,
    int $flags = 0
): string|array|null

El 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.

Parámetros

pattern

Un array asociativo que establece una relación entre los patrones (claves) y las funciones de devolución de llamada callable (valores).

subject

La 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).

count

Si 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.

Valores devueltos

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.

Errores/Excepciones

Si el patrón regex pasado no se compila a una regex válida, se emite una E_WARNING.

Historial de cambios

Versión Descripción
7.4.0 El parámetro flags ha sido añadido.

Ejemplos

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

Ver también