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 chaîne de caractères o tableau que contiene los chaîne de caractères a buscar y reemplazar.

limit

El número máximo de reemplazos para cada patrón en cada chaîne de caractères 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 chaîne de caractères. 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

If the regex pattern passed does not compile to a valid regex, an E_WARNING is emitted.

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 resultado del ejemplo sería:

6 coincidencias de "a" encontradas
3 coincidencias de "b" encontradas

Ver también