preg_replace_callback_array
Introducción
En PHP, las expresiones regulares son una herramienta esencial para manipular y buscar cadenas. Disponible desde PHP 7.1, la función preg_replace_callback_array() te permite reemplazar todas las ocurrencias de múltiples patrones de expresiones regulares utilizando diferentes funciones de devolución de llamada (callbacks). Este artículo cubre cómo funciona la función y cómo usarla de manera efectiva.
Comprender la función preg_replace_callback_array()
La función preg_replace_callback_array() busca en una cadena de entrada todas las ocurrencias de múltiples patrones de expresiones regulares y las reemplaza con los valores devueltos por las funciones de devolución de llamada correspondientes. Si la entrada es una cadena, devuelve una cadena; si es un array, devuelve un array. La sintaxis es la siguiente:
preg_replace_callback_array($patterns_and_callbacks, $subject, $limit, &$count);Aquí, $patterns_and_callbacks es un array que contiene patrones de expresiones regulares como claves y funciones de devolución de llamada como valores. $subject es la cadena o array que se busca y modifica. $limit es un parámetro opcional que especifica el número máximo de reemplazos a realizar, y &$count es un parámetro opcional que devuelve el número de reemplazos realizados.
Nota: Las funciones de devolución de llamada deben devolver cadenas. Si una devuelve null, se convierte en una cadena vacía. PHP convierte automáticamente los valores numéricos devueltos a cadenas.
Ejemplo de uso
Veamos un ejemplo para comprender el uso de la función preg_replace_callback_array() en PHP:
Ejemplo de uso de PHP preg_replace_callback_array()
<?php
$patterns_and_callbacks = [
'/(\w+)/i' => function ($matches) {
return strtoupper($matches[0]);
},
'/(\d+)/' => function ($matches) {
return $matches[0] + 1;
},
];
$string = 'This is a test string with 1234';
$new_string = preg_replace_callback_array($patterns_and_callbacks, $string);
echo $new_string;En este ejemplo, la primera función de devolución de llamada convierte las palabras coincidentes a mayúsculas, mientras que la segunda incrementa los dígitos coincidentes. Ten en cuenta que la segunda función devuelve un entero, el cual PHP convierte automáticamente a una cadena. La función procesa todos los patrones e imprime la cadena modificada resultante.
Conclusión
La función preg_replace_callback_array() proporciona una forma limpia de aplicar lógica personalizada a múltiples patrones de expresiones regulares en una sola pasada. Es particularmente útil cuando diferentes patrones requieren diferentes estrategias de reemplazo. Esperamos que esta visión general te ayude a integrar la función en tus proyectos PHP. Para más preguntas, no dudes en preguntar.
Práctica
¿Qué hace la función preg_replace_callback_array en PHP?