Pb avec une expression régulière sous PHP

Fermé
JérômeZ - 23 juil. 2008 à 21:31
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 - 24 juil. 2008 à 18:01
Bonjour à tous,

ce post s'adresse à des pros des expressions régulières sous PHP.

J'utilise pour un site associatif un framework (CodeIgniter) qui filtre les chaines de caractères en entrée.

Problème :

$str = "Jérôme";

// La ligne suivante (1) renvoie NULL
$str = preg_replace('#(&\#*\w+)[\x00-\x20]+;#u','\\1;',$str);

// alors que celle-ci (2) renvoie "Jérôme"
$str = preg_replace('#(&\#*\w+)[\x00-\x20]+;#U','\\1;',$str);

La ligne 1 fonctionnait avec le précédent serveur (Apache 2.0.58, PHP 5.1.4, le tout sous Debian Sarge) mais ne fonctionne plus sur le serveur actuel (Apache 2.2.3, PHP 5.2.0 sous Debian Etch)

Etant beaucoup, beaucoup plus à l'aise avec Visual Studio, je sèche un peu sur l'explication et l'interprétation de ces lignes de code tout en m'estimant déjà assez content d'avoir pu trouver le bug.

Reste à comprendre la différence en raison des implications potentielles de cette modification (liée à XSS Prevention)

Et là, c'est à vous de jouer !! :-)

Merci d'avance

@ tchaw
Jérôme
A voir également:

2 réponses

Pas de réponse ???

Surprenant !!

@ tchaw
Jérôme
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
24 juil. 2008 à 18:01
je m'y connais quasiment pas mais
http://www.expreg.com/options.php
u et U ça a l'air différent
0