Bonjour,
je recupere des emails de toutes formes genre:
toto@free.Fr
mais aussi
"ToTo le Gros" <toto@free.fr>
Comment nettoyer la 2ieme pour ne recuperer que toto@free.fr
Merci pour vos conseils.
A+
VooDoo
Bonjour,
je recupere des emails de toutes formes genre:
toto@free.Fr
mais aussi
"ToTo le Gros" <toto@free.fr>
Comment nettoyer la 2ieme pour ne recuperer que toto@free.fr
Merci pour vos conseils.
A+
VooDoo
Salut,
Tu peux essayer de faire un "split" sur ta variable.
Salut,
Une petite regex pour extraire éventuellement l'email entre les <>. Cela permettra plus tard de modifier l'expression régulière pour traiter plus de cas
on applique la regex, si elle fonctionne, on a dans retour l'email désiré.
Ensuite, on utilise les fonctions de l'extension filter pour valider ou ici nettoyer
S'il y a beaucoup d'emails a traiter on eut ajouter un strpos pour ne pas faire la regex à tous les coups.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $email = '"ToTo le Gros" <toto@free.fr>'; if ( preg_match('|<(.*)>|',$email,$retour) ) { $email = $retour[1]; } echo filter_var($email,FILTER_SANITIZE_EMAIL);
Pour plus de clarté ( pas vraiment nécessaire ici ), on peut utiliser une syntaxe particulière pour les parenthèses capturantes.
J'ai découvert cette syntaxe, il y a quelques semaines et je la trouve pratique dans le cas de nombreux masques capturants :
En gros, on nomme la partie capturante et on retrouve ce nom dans le tableau php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ( preg_match('|<(?<email>.*)>|',$email,$retour) ) { $email = $retour['email']; }
Super Merci bcp les gars!
Par contre j'avoue que j'ai du mal a lire la derniere synthaxe..
Mais elle roxe!
A+
VooDoo
Partager