(PHP 4, PHP 5, PHP 7, PHP 8)
preg_quote — Protection des caractères spéciaux des expressions régulières
$str
, ?string $delimiter
= null
): string
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 vous avez 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 :
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #
Notez que /
n'est pas un caractère spécial d'expression régulière.
Note:
Notez que preg_quote() n'est pas destiné à être appliqué aux chaînes de caractères $replacement de preg_replace() etc.
str
La 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.