Функция preg_replace_callback

La función preg_replace_callback realiza la búsqueda mediante una expresión regular y el reemplazo utilizando una función de callback. El primer parámetro acepta una expresión regular, el segundo - una función de callback, y el tercero - una cadena para procesar. La función de callback recibe un array de coincidencias y debe devolver una cadena de reemplazo.

Sintaxis

phppreg_replace_callback(pattern, callback, subject, [limit], [count]);

Ejemplo

Reemplacemos todos los números en la cadena por sus cuadrados:

php<?php
  $str = 'Numbers: 2, 4, 6';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return $matches[0] * $matches[0];
  }, $str);
  echo $res;
?>

Resultado de ejecutar el código:

php'Numbers: 4, 16, 36'

Ejemplo

Transformemos todas las palabras a mayúsculas:

php<?php
  $str = 'hello world';
  $res = preg_replace_callback('/\b\w+\b/', function($matches) {
    return strtoupper($matches[0]);
  }, $str);
  echo $res;
?>

Resultado de ejecutar el código:

php'HELLO WORLD'

Ejemplo

Añadamos paréntesis alrededor de cada número:

php<?php
  $str = '1 2 3 4 5';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return '('.$matches[0].')';
  }, $str);
  echo $res;
?>

Resultado de ejecutar el código:

php'(1) (2) (3) (4) (5)'

Ver también

  • la función preg_replace,
    que realiza el reemplazo mediante una expresión regular
  • la función preg_match,
    que realiza la búsqueda mediante una expresión regular