Posts Tagged ‘pcre’

PCRE, à quoi sert l’option ‘e’ ?

L’option ‘e’ n’est disponible qu’avec la fonction preg_replace(). Quand on regarde dans la documentation sur php.net, la liste des options pour les expressions régulières est donnée, dont le fameux ‘e’, PREG_REPLACE_EVAL.

Avec cette option, preg_replace() effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l’évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche. Les simples quotes, les doubles quotes, les anti-slashes et les caractères NULL sont échappées avec des anti-slashes (\) dans les références arrières substituées.

Seule preg_replace() utilise cette option. Elle est ignorée par les autres.

Ce qui entre en jeu ici, est que la capture va être remplacée et évaluée en tant que code PHP.

$email = "ilia@php.net";
 $new_email = preg_replace('!([^a-z]{1})!ie', "'&#'.ord('\\1').';'", $email);
    var_dump($new_email);
Publicités