Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
572 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Dans une liste de mails exclure les gmail

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dans une liste de mails exclure les gmail

n°2334866
laclac
Posté le 08-06-2019 à 14:53:50  profilanswer
 

Bonjour,
 
J'ai un texte contenant une liste d'adresse mails
$mails = 'toto@gmail.com, julien@laposte.net, thomas@gmail.com, patrcik@hotmail.fr';
 
Je souhaite retirer toutes les adresses mails @gmail.com pour avoir que "julien@laposte.net, patrcik@hotmail.fr';
 mais je n'arrive pas :(
 
Pourriez vous m aider ?

mood
Publicité
Posté le 08-06-2019 à 14:53:50  profilanswer
 

n°2334868
rat de com​bat
attention rongeur méchant!
Posté le 08-06-2019 à 15:46:58  profilanswer
 

Je connais pas PHP mais Perl c'est proche. Tu découpes ta chaîne au niveau des virgules (Perl: split), tu en fais un tableau, tu fais un grep inversé et tu réassembles le tout. Ou alors avec un regex, genre

s/(?:(?:, )|^)[^@]+@gmail\.com//g

. Pas élégant mais ça marche. :o

n°2334871
rufo
Pas me confondre avec Lycos!
Posté le 08-06-2019 à 16:09:55  profilanswer
 

Code :
  1. $ArrayTmp = explode(';', $mails);
  2. $ArrayMails = array();
  3. foreach($ArrayTmp as $Mail)
  4. {
  5.     if (strpos($Mail, '@gmail') === FALSE)
  6.     {
  7.         $ArrayMails[] = $Mail;
  8.     }
  9. }
  10. $mails = implode(';', $ArrayMails);



---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°2334873
MaybeEijOr​Not
but someone at least
Posté le 08-06-2019 à 17:11:40  profilanswer
 

Et par esprit de contradiction :

Code :
  1. function checkdomain($mail) {
  2.     if(substr_compare($mail, '@gmail.com', -10, 10)) {
  3.         return false;
  4.     } else {
  5.         return true;
  6.     }
  7. }
  8. $mails = 'toto@gmail.com, julien@laposte.net, thomas@gmail.com, patrcik@hotmail.fr';
  9. $mails = explode(',', $mails);
  10. $mails = array_filter($mails, 'checkdomain');
  11. $mails = implode(',', $mails);


 
 :o  
 
C'est juste pour proposer un array_filter, sinon est-ce que lorsqu'on connait la position de l’occurrence ce n'est pas plus rapide comme ça ?  [:bidem]


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2334882
B4X
kebab-case
Posté le 10-06-2019 à 02:00:55  profilanswer
 

Code :
  1. $mails = preg_replace('![\w]+@gmail\.com,?!i','',$mails);


---------------
In vanitas veritas.
n°2334898
laclac
Posté le 10-06-2019 à 21:43:05  profilanswer
 

Bon, bn un grand merci.
Je m'attendais pas à autant de réponse, toute aussi performante les unes que les autres.
Avec quand même la dernier qui va très loin.
Les regexp a tjs été un mystere pour moi, mais à chaqu fois je suis impression par leur efficacité.
Merci à tous c'est vraiment top.
Mon code fonctionne trop bien désormais


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Dans une liste de mails exclure les gmail

 

Sujets relatifs
XSLT 1.0 - Grouper par liste de noeuds identiquesExport mails dans Excel
actualiser donnée database via liste deroulante ajax[résolu] liste A dans B, modifier A modifie B ?
Aide vba word choix dans une listeSupprimer un doublon dans une liste python
liste des feuilles d'un fichier excelPerl - Tableau associatif et liste
copier tuple dans listeCréation d'une liste en SQL
Plus de sujets relatifs à : Dans une liste de mails exclure les gmail


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR