chercher mail dans une chaine de caractère en php

chercher mail dans une chaine de caractère en php - PHP - Programmation

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

Reply

Marsh Posté le 13-01-2011 à 13:38:24   

Reply

Marsh Posté le 13-01-2011 à 13:48:33    

tu comprends l'expression ?

Reply

Marsh Posté le 13-01-2011 à 13:53:42    

stealth35 a écrit :

tu comprends l'expression ?


pas très bien

Reply

Marsh 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é :o

Reply

Marsh Posté le 13-01-2011 à 14:29:40    

smaragdus a écrit :

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é :o


merci

Reply

Marsh Posté le 13-01-2011 à 14:53:44    


 
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 ?

Reply

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?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-01-2011 à 15:02:45    

esox_ch a écrit :

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?


 
je te demande pardon, personne t'oblige à répondre au question

Reply

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 :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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 :o


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 ?  
 

Reply

Marsh Posté le 13-01-2011 à 15:08:17   

Reply

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

Message cité 2 fois
Message édité par stealth35 le 13-01-2011 à 15:20:21
Reply

Marsh Posté le 13-01-2011 à 15:45:21    

stealth35 a écrit :

lire la doc de preg_match par exemple...
 
 
sinon moi mon mail c'est : test+exemple@exemple.com
 
ton code ne fonctionne pas


 
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

Reply

Marsh Posté le 13-01-2011 à 15:47:46    

j'ai une autre adresse c'est : "test exemple"@exemple.com

Reply

Marsh 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

Reply

Marsh Posté le 13-01-2011 à 16:45:08    

si si c'est correct ;)

 

comme celui la aussi :
test@[127.0.0.1]

Message cité 1 fois
Message édité par stealth35 le 13-01-2011 à 16:45:19
Reply

Marsh Posté le 13-01-2011 à 16:47:13    

stealth35 a écrit :

lire la doc de preg_match par exemple...
 test+exemple@exemple.com


 

stealth35 a écrit :


"test exemple"@exemple.com


 

stealth35 a écrit :


test@[127.0.0.1]


 
Genre le mec qui fait pas chier avec des formats d'e-mail très courants :lol:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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 :lol:


 
c'est pour le faire bosser un peu, au lieu de recopier des codes tout naze  ;)  

Reply

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 :lol:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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 :lol:


 
celui de PHP (filter_validate_email) c'est :

Code :
  1. /^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?
  2. :(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\
  3. x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x
  4. 0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x
  5. 21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0
  6. B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?
  7. !.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-
  8. z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a
  9. -f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{
  10. 1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|
  11. (?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){
  12. 5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{
  13. 1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]
  14. ))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]
  15. ))$/iD

Reply

Marsh Posté le 13-01-2011 à 17:17:51    

[:ripthejacker:3]

Reply

Marsh Posté le 13-01-2011 à 17:25:38    

stealth35 a écrit :


 
celui de PHP (filter_validate_email) c'est :

Code :
  1. /^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?
  2. :(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\
  3. x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x
  4. 0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x
  5. 21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0
  6. B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?
  7. !.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-
  8. z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a
  9. -f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{
  10. 1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|
  11. (?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){
  12. 5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{
  13. 1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]
  14. ))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]
  15. ))$/iD



 
petit joueur.:o
http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-01-2011 à 17:29:33    

Voilà c'est celle-là qu'il avait sorti :o
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 :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 14-01-2011 à 17:07:25    

Joli :love: !

 

Sauf qu'elle a du être générée automatiquement j'imagine :p !

 

Question subsidiaire : est-ce possible ? Hmmm...

Message cité 1 fois
Message édité par misterakm le 14-01-2011 à 17:08:05
Reply

Marsh Posté le 14-01-2011 à 17:45:58    

misterakm a écrit :

Joli :love: !
 
Sauf qu'elle a du être générée automatiquement j'imagine :p !
 
Question subsidiaire : est-ce possible ? Hmmm...


 
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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed