chercher mail dans une chaine de caractère en php - PHP - Programmation
Marsh Posté le 13-01-2011 à 13:53:42
ReplyMarsh Posté le 13-01-2011 à 14:17:13
2 rappels :
* ereg est déprécated, il faut préférer preg_match
* http://gskinner.com/RegExr/ vous permettra de briller en société
Marsh Posté le 13-01-2011 à 14:29:40
smaragdus a écrit : 2 rappels : |
merci
Marsh Posté le 13-01-2011 à 14:53:44
atout1 a écrit : |
merci bcp c'est un site génial ... j'ai trouver lexpression régulière
voilà : ([a-zA-z0-9])+([-_.])?([a-zA-Z0-9.-_])+([@])([a-zA-z0-9])+([-_.])?([a-zA-Z0-9])+([-_.])+([a-zA-Z0-9])+
j'ai une autre question, comment l'utiliser dans un code php ?
Marsh Posté le 13-01-2011 à 14:56:29
Tu trouves pas que t'exagères un peu là non?
Tu arrives avec une ligne de code totalement à côté de la plaque, smaragdus te dit les erreurs et te donne un lien pour corriger et t'es même pas foutu d'essayer par toi même?
Marsh Posté le 13-01-2011 à 15:02:45
esox_ch a écrit : Tu trouves pas que t'exagères un peu là non? |
je te demande pardon, personne t'oblige à répondre au question
Marsh Posté le 13-01-2011 à 15:03:53
Non, mais tu es sensé lire la charte du forum avant de poster. Si tu l'avais fait, tu verras qu'il y a plusieurs articles disant qu'on fait pas le boulot à ta place
Marsh Posté le 13-01-2011 à 15:08:17
esox_ch a écrit : Non, mais tu es sensé lire la charte du forum avant de poster. Si tu l'avais fait, tu verras qu'il y a plusieurs articles disant qu'on fait pas le boulot à ta place |
je sais bien ça, mais comme je me trouve bloquer je demander l'aide d'une personne qui sait ou déjà fait de truc pareil ... je ne vois pas où il est le problème ...
mnt dis moi si tu connais j'ai mis ça dans un code php
$chaine = "bla bla bla mail@hotmail.fr bla totot toto ";
echo $mail = preg_match("#[a-zA-z0-9]+[-_.]?[a-zA-Z0-9.-_]+[@][a-zA-z0-9]+[-_.]?[a-zA-Z0-9]+[-_.]+[a-zA-Z0-9]+#", "$chaine" )
il donne comme résultats => 1 . comment faire pour récuperer le mail ?
Marsh Posté le 13-01-2011 à 15:17:13
lire la doc de preg_match par exemple...
sinon moi mon mail c'est : test+exemple@exemple.com
ton code ne fonctionne pas
Marsh Posté le 13-01-2011 à 15:45:21
stealth35 a écrit : lire la doc de preg_match par exemple... |
merci pour le remarque, j'ai trouvé finalement .. j'espère que c'est bon comme ça .. voilà le code finale :
<?php
$chaine = "bla bla bla mail@hotmail.fr bla totot toto ";
preg_match('#[a-zA-z0-9]*[-_.+/\]?[a-zA-Z0-9.-_]+[@][a-zA-z0-9]*[-_.+/\]?[a-zA-Z0-9.-_]+#', $chaine, $matches, PREG_OFFSET_CAPTURE);
$result = array_merge($matches, $matches[0]);
echo $result[1]; // affiche : mail@hotmail.fr
?>
Merci à tous
Marsh Posté le 13-01-2011 à 15:47:46
ReplyMarsh Posté le 13-01-2011 à 16:31:39
stealth35 a écrit : j'ai une autre adresse c'est : "test exemple"@exemple.com |
preg_match('#[a-zA-z0-9\"\'@\.-_]*[-_.+/\]?[a-zA-Z0-9.-_]+[@][a-zA-z0-9\"\'@\.-_]*[-_.+/\]?[a-zA-Z0-9\"\'@\.-_]+#', $chaine, $matches, PREG_OFFSET_CAPTURE);
comme ça je pense que ç'est bon mais un mail avec espace je ne pense pas que c'est feusable ... Merci
Marsh Posté le 13-01-2011 à 16:45:08
si si c'est correct
comme celui la aussi :
test@[127.0.0.1]
Marsh Posté le 13-01-2011 à 16:47:13
stealth35 a écrit : lire la doc de preg_match par exemple... |
stealth35 a écrit : |
stealth35 a écrit : |
Genre le mec qui fait pas chier avec des formats d'e-mail très courants
Marsh Posté le 13-01-2011 à 16:48:13
esox_ch a écrit : Genre le mec qui fait pas chier avec des formats d'e-mail très courants |
c'est pour le faire bosser un peu, au lieu de recopier des codes tout naze
Marsh Posté le 13-01-2011 à 16:50:15
Je me rappelle qu'une fois FlorentG avait posté la regexp qui validait tous les e-mails acceptables suivant la forme iso ... Elle faisait genre 1 page
Marsh Posté le 13-01-2011 à 17:01:11
esox_ch a écrit : Je me rappelle qu'une fois FlorentG avait posté la regexp qui validait tous les e-mails acceptables suivant la forme iso ... Elle faisait genre 1 page |
celui de PHP (filter_validate_email) c'est :
Code :
|
Marsh Posté le 13-01-2011 à 17:25:38
stealth35 a écrit :
|
petit joueur.
http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
Marsh Posté le 13-01-2011 à 17:29:33
Voilà c'est celle-là qu'il avait sorti
Je propose que désormais, à chaque fois qu'un gugus arrive en nous demandant de lui faire un regexp qui valide ses e-mails, on lui colle directement ça
Marsh Posté le 14-01-2011 à 17:07:25
Joli !
Sauf qu'elle a du être générée automatiquement j'imagine !
Question subsidiaire : est-ce possible ? Hmmm...
Marsh Posté le 14-01-2011 à 17:45:58
misterakm a écrit : Joli ! |
non, c'est fait a la main, c'est pas si compliqué, un groupe ou une condition ca prend vite de la place, de plus la plupart des groupes sont identiques.
Marsh Posté le 13-01-2011 à 13:38:24
Bonjour, tout le monde ca va ?
j'ai la chaine de caractère suivante :
$chaine = "bla bla bla email@hotmail.com bal bla bla ...";
je voudrais récupérer l'adresse mail; mais je ne sais pas comment faire ?
normelement il faut utiliser des expressions réguliers, j'ai essayer ça mais ça ne marche pas :
$mail = ereg("^[:alnum:]+[@][:alnum:]$", "$chaine" );
Merci d'avance pour votre aide.
Cordialement