PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

preg_replace_callback> <preg_match
Last updated: Fri, 20 Jun 2008

view this page in

preg_quote

(PHP 4, PHP 5)

preg_quote — Protection des caractères spéciaux des expressions rationnelles

Description

string preg_quote ( string $str [, string $delimiter ] )

preg_quote() ajoute un antislash devant tous les caractères de la chaîne str . 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 échappés : . \ + * ? [ ^ ] $ ( ) { } = ! < > | :

Liste de paramètres

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.

Valeurs de retour

Retourne la chaîne échappée.

Exemples

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);
?>

Notes

Note: Cette fonction gère les chaînes binaires.



add a note add a note User Contributed Notes
preg_quote
bizzigul at hotmail dot fr
30-Jul-2008 06:10
To prevent any problems, try to always use a delimiter that will *almost* not be used inside the regex, such as ` (back quote)

for example: instead of
<?php preg_match('/foo\/bar\//',$somevar); ?>

use

<?php preg_match('`foo/bar/`',$somevar); ?>

it's that simple! like this, you won't have to bother with delimiters anymore...
Anonymous
27-Dec-2007 12:13
Wondering why your preg_replace fails, even if you have used preg_quote?

Try adding the delimiter / - preg_quote($string, '/');

preg_replace_callback> <preg_match
Last updated: Fri, 20 Jun 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites