preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_quoteEscapa caracteres de expressão regular

Descrição

preg_quote(string $str, ?string $delimiter = null): string

preg_quote() insere uma barra invertida na frente de cada caractere de str que seja parte da sintaxe de expressões regulares. Isto é útil caso exista uma string no momento da execução que precisa ser correspondida a algum texto e que possa conter caracteres especiais de expressões regulares.

Os caracteres especiais de expressões regulares são: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #

Observe que / não é um caractere especial de expressões regulares.

Note:

Veja que preg_quote() não foi projetada para ser aplicada às strings de substituição da função preg_replace() e outras.

Parâmetros

str

A string de entrada.

delimiter

Se o parâmetro opcional delimiter for especificado, o ele também será escapado. Isto é útil para escapar o delimitador requerido pelas funções PCRE. A barra / é o delimitador mais comum.

Valor Retornado

Retorna a string escapada.

Registro de Alterações

Versão Descrição
7.3.0 O caractere # agora é escapado.
7.2.0 delimiter agora pode ser nulo.

Exemplos

Example #1 Exemplo de preg_quote()

<?php
$keywords = '$40 por um g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // retorna \$40 por um g3\/400
?>

Example #2 Transformando uma palavra em itálico dentro de um texto

<?php
// Neste exemplo, preg_quote($word) é usada para impedir que
// os asteriscos tenham um significado especial na expressão
// regular.

$textbody = "Este livro é *muito* difícil de encontrar.";
$word = "*muito*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Notas

Note: Esta função é compatível com dados binários.

Veja Também