(PHP 4, PHP 5, PHP 7, PHP 8)
preg_quote — Protection des caractères spéciaux des expressions régulières
preg_quote() ajoute un antislash devant chaque caractère de la chaîne str faisant partie de la syntaxe des expressions régulières.
Cela est très utile si l'on a une chaîne qui va
servir de masque, mais qui est générée durant
l'exécution.
Les caractères spéciaux qui seront protégés sont les suivants :
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #
À noter que / n'est pas un caractère spécial d'expression régulière.
Note:
À noter que preg_quote() n'est pas destiné à être appliqué aux chaînes de caractères $replacement de preg_replace() etc.
strLa chaîne d'entrée.
delimiter
Si l'argument optionnel delimiter est fourni,
il sera aussi échappé. Ceci est pratique pour échapper
le délimiteur requis par les fonctions PCRE. Le slash / est le
délimiteur le plus répandu.
Retourne la chaîne protégée.
| Version | Description |
|---|---|
| 7.3.0 |
Le caractère # est maintenant protégé
|
| 7.2.0 |
delimiter est désormais nullable.
|
Exemple #1 Exemple avec preg_quote()
<?php
$keywords = '$40 pour un g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // retourne \$40 pour un g3\/400
?>
Exemple #2 Mise en italique d'un mot dans un texte
<?php
// Dans cet exemple, preg_quote($word) sert à éviter que les astérisques
// prennent une valeur particulière dans l'expression rationnelle.
$textbody = "Ce livre est *très* difficile à trouver.";
$word = "*très*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
"<i>" . $word . "</i>",
$textbody);
?>Note: Cette fonction gère les chaînes binaires.