Função para escapar de padrões regex antes de serem aplicados em PHP
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;
?>
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;
?>
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;
?>
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.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva