preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_arrayRealiza pesquisa e substituição em expressão regular usando chamadas de retorno

Descrição

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

O comportamento desta função é similar a preg_replace_callback(), exceto que chamadas de retorno são executada para cada expressão.

Parâmetros

pattern

Um array associativo mapeando expressões (chaves) a funções de retorno do tipo callable (valores).

subject

A string ou um array com strings para pesquisa e substituição.

limit

O número máximo de substituições para cada expressão em cada string de entrada do parâmetro subject. O padrão é -1 (sem limite).

count

Se especificada, esta variável será preenchida com o número de substituições realizadas.

flags

flags pode ser uma combinação das opções PREG_OFFSET_CAPTURE e PREG_UNMATCHED_AS_NULL, que influenciam o formato do array de correspondências. Consulte a descrição em preg_match() para mais detalhes.

Valor Retornado

preg_replace_callback_array() retorna um array se o parâmetro subject for um array, ou uma string caso contrário. Em caso de erros, o valor de retorno é null

Se corresponências forem encontradas, a nova string será retornada, caso contrário subject será retornado sem alteração.

Erros/Exceções

Se o padrão de expressão regular passado não for compilado para uma expressão regular válida, um E_WARNING será emitido.

Registro de Alterações

Versão Descrição
7.4.0 O parâmetro flags foi adicionado.

Exemplos

Example #1 Exemplo de preg_replace_callback_array()

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' correspondências a "a" encontradas', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' correspondências a "b" encontradas', PHP_EOL;
        }
    ],
    $subject
);
?>

O exemplo acima produzirá:

6 correspondências a "a" encontradas
3 correspondências a "b" encontradas

Veja Também