Use a função preg_quote() no PHP para escapar dos padrões regex antes de serem aplicados em tempo de execução. A função preg_quote() coloca uma barra invertida na frente de cada caractere dentro da string especificada que seria uma parte da sintaxe regex em PHP, tornando-os assim sequências de escape. Esses caracteres incluem:
. \ + *? [^] $() {} =! | : - #

Sintaxe:

string preg_quote( string $str, string $delimiter = NULL )

Parâmetros:

  • $str: este parâmetro contém a string de entrada.
  • $delimitador: é um parâmetro opcional. O delimitador mais comum é '/', pois não é um caractere regex especial que normalmente seria tratado por preg_quote(). Usado principalmente em conjunto com a função preg_replace() .

Retorna: retorna o delimitador que contém a string.

Os programas abaixo ilustram a função preg_quote().

Programa 1:

<?php
  
// Create a string which need to be escaped
$str = "Welcome to GfG! (+ The course fee. $400) /";
      
echo "Before Processing - " . $str . PHP_EOL;
  
// Use preg_quote() on above string
$processedStr = preg_quote($str);
  
// Display the output
echo "After Processing - " . $processedStr;
  
?>
Saída:
Antes do processamento - Bem-vindo ao GfG! (+ A taxa do curso. $400) /
Após o processamento - Bem-vindo ao GfG \! \ (\ + A taxa do curso \. \ $400 \) /

Observe que uma barra invertida foi colocada na frente de cada caractere especial, mas não para a barra. Para isso, podemos usar o delimitador, veja o programa abaixo:

Programa 2

<?php
  
// Create a string which need to be escaped
$str = "Welcome to GfG! (+ The course fee. $400) /";
      
echo "Before Processing - " . $str . PHP_EOL;
  
// Use preg_quote() on above string
$processedString = preg_quote($str, '/');
  
// Display the output
echo "After Processing - " . $processedString;
  
?>
Saída:
Antes do processamento - Bem-vindo ao GfG! (+ A taxa do curso. $400) /
Após o processamento - Bem-vindo ao GfG \! \ (\ + A taxa do curso \. \ $400 \) \ /

O programa abaixo demonstra o uso combinado das funções preg_quote() e preg_replace() .

Programa 3:

<?php
  
// PHP Program emphasize the word within * * and 
// use font style to italic within [ ] using
// both preg_quote() and preg_replace() function
  
$str = "The *article* was written by [GFG]";
      
// The words to be formatted
$word1 = "*article*";
$word2 = "[GFG]";
      
// The first string only applies bold to word 1,
// preg_quote() escapes the * *
$processedStr1 = preg_replace("/" . preg_quote($word1, '/')
            . "/", "<strong>" . $word1 . "</strong>", $str);
  
echo "BOLD ONLY - " . $processedStr1 . PHP_EOL;
  
// The second string only applies italics to 
// word 2, preg_quote() escapes the [ ]
$processedStr2 = preg_replace("/" . preg_quote($word2, '/')
            . "/", "<em>" . $word2 . "</em>", $str);
  
echo "ITALIC ONLY - " . $processedStr2 . PHP_EOL;
  
// Combining both text formattings and display
$bothReplacementsCombined = preg_replace("/" .
            preg_quote($word2, '/') . "/",
            "<em>" . $word2 . "</em>", $processedStr1);
  
echo "BOTH COMBINED - " . $bothReplacementsCombined;
  
?>
Saída:
SOMENTE NEGRITO - O * artigo * foi escrito por [GFG]
SOMENTE EM ITALICO - O * artigo * foi escrito por [GFG] 
AMBOS COMBINADOS - O * artigo * foi escrito por [GFG]

Nota: para notar a aplicação das tags de formatação de texto, você deve executar o PHP em seu servidor local e echo para o navegador.