Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2007, 23h19   #1
Membre Expert
 
Avatar de méphistopheles
 
Inscription : janvier 2005
Messages : 1 552
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : janvier 2005
Messages : 1 552
Points : 1 212
Points : 1 212
Par défaut Regex qui fonctionne dans un preg_replace mais pas dans un ereg

Bonjour.

j'utilise une expression régulière de recherche d'adresse email (trouvée dans dvp).
Je l'ai utilisée avec un ereg replace de la manière suivante:
Code :
$chaine=preg_replace('#\[mail=([-a-z0-9!\#$%&\'*+\\/=?^_`{|}~]+(\.[\-a-z0-9!\#$%&\'*+\\/=?^_`{\|}~]+)*@([[:alnum:]]{1,63}\.)+[[:alnum:]]{2,63})\](.+)\[/mail\]#i','<a href="mailto:$1">$4</a>',$chaine);
et cela fonctionne parfaitement de cette manière. mais lorsque je l'utilise comme condition dans le ereg:
Code :
if (!(ereg('#([-a-z0-9!\#$%&\'*+\\/=?^_`{|}~]+(\.[\-a-z0-9!\#$%&\'*+\\/=?^_`{\|}~]+)*@([[:alnum:]]{1,63}\.)+[[:alnum:]]{2,63})#iU',$_POST['email'])))
il m'affiche l'erreur suivante que je n'arrive pas à résoudre(enfin si, mais la regex ne marche plus bien):
Citation:
Warning: ereg(): REG_ERANGE in d:\dossiers & prog\programation\php\tryzone\Mail_Admin.Php on line 23
si vous aviez une idée de l'origine de l'erreur...

merci
__________________
Méphistophélès
Si la solution ne résout pas votre problème, changez le problème...
méphistopheles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 00h15   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Heuuu si je ne m'abuse, le ereg est POSIX alors que le preg_replace est PCRE, donc différents niveau syntaxe...

Ensuite, je suis absolument pas sur de ce que j'avance...
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 11h14   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par gloubi
Heuuu si je ne m'abuse, le ereg est POSIX alors que le preg_replace est PCRE, donc différents niveau syntaxe...
C'est vrai : les fonctions ereg n'ont pas besoin de délimiteur sinon elles feront partie, pour elles, du motif donc vous pouvez les supprimer et supprimer également les caractères d'échappement devant le caractère délimiteur dans votre expression (vous l'aviez mal choisi donc). De plus, les drapeaux U et i n'ont aussi aucun sens pour ces fonctions et elles considèreront qu'elles font aussi partie du motif.

J'en viens à cette question : pourquoi ne pas garder les fonctions PCRE plus performantes et plus souples (votre cas le prouve), d'autant plus que les fonctions POSIX vont disparaître (elles seraient déjà désactivées par défaut depuis PHP 5.2) ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 11h24   #4
Membre Expert
 
Avatar de méphistopheles
 
Inscription : janvier 2005
Messages : 1 552
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : janvier 2005
Messages : 1 552
Points : 1 212
Points : 1 212
he bien... c'est à dire que je ne connais pas l'équivalent PCRE de ereg...
à vrai dire, j'ignorais que l'un étais posix et l'autre PCRE.

bon, je vais faire des recherche de ce coté là . par contre, j'espere que y'a pas trop de fonctions "destinée à êtres supprimée" dans mes script...

merci beaucoup

PS: c'est bien Preg_matchesqu'il faut utiliser?
__________________
Méphistophélès
Si la solution ne résout pas votre problème, changez le problème...
méphistopheles est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2007, 11h56   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par méphistopheles
PS: c'est bien Preg_match qu'il faut utiliser ?
Oui.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h49.


 
 
 
 
Partenaires

Hébergement Web