Função preg_replace_callback

A função preg_replace_callback executa pesquisa por expressão regular e substituição usando uma função de callback. O primeiro parâmetro aceita uma expressão regular, o segundo - uma função de callback, e o terceiro - uma string para processamento. A função de callback recebe um array de correspondências e deve retornar uma string de substituição.

Sintaxe

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

Exemplo

Vamos substituir todos os números na string pelos seus quadrados:

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

Resultado da execução do código:

php'Numbers: 4, 16, 36'

Exemplo

Vamos converter todas as palavras para maiúsculas:

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

Resultado da execução do código:

php'HELLO WORLD'

Exemplo

Vamos adicionar parênteses em torno 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 da execução do código:

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

Veja também

  • a função preg_replace,
    que executa substituição por expressão regular
  • a função preg_match,
    que executa pesquisa por expressão regular