Boucle explode expreg

Résolu
angeldu74 Messages postés 37 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 5 juillet 2008 - 11 mai 2008 à 23:49
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 12 mai 2008 à 15:52
Bonjour,
Je récupère les adresses mail séparés par ';' après je veux faire un controle sur chaque adresse.
Pourriez vous m'aider svp...

Voilà où j'en suis:

$email = $_POST['email'];
$listemail= explode(";", $email);
foreach(...
mail($email,...)

le contrôle peut être fait avec expreg().

4 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
12 mai 2008 à 12:03
Hello,

la fonction array_filter( ) sera très utile dans ton cas

function checkmail($mail){
        expreg
}

$emails = $_POST['email'];
$emails= explode(";", $emails);
$emails = array_filter($emails, 'checkmail');

Et tu te retrouves avec un tableau emails qui ne contient plus que les adresses valides.

à
3
angeldu74 Messages postés 37 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 5 juillet 2008
12 mai 2008 à 12:48
D'accord par contre au niveau de l'envoi comment faut -il faire pour parcourir le tableau pour envoyer tous les mails avec la fonction mail()??
et la fonction checkmail n'a pas besoin () après expreg?
Merci encore pour ton aide.
@+
3
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
12 mai 2008 à 13:48
Voici une possibilité (archive) :











function checkMailAddr($sMail){
$sPattern = '#^([a-z0-9](?:[-_.]?[a-z0-9])*)@([a-z0-9](?:[-_.]?[a-z0-9])*)\.([a-z]{2,4})$#i';
return(preg_match($sPattern, $sMail, $aMatches) == 1) ? array('base'=>$aMatches[0], 'login'=>$aMatches[1], 'host'=>$aMatches[2], 'domain'=>$aMatches[3]) : false;
}
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
12 mai 2008 à 15:52
Non, pas ( ) dans l'appel de array_filter.

Après tu envoies tes mails oui :

function checkmail($mail){
        expreg
}

$emails = $_POST['email'];
$emails= explode(";", $emails);
$emails = array_filter($emails, 'checkmail');

foreach($emails as $value){
    mail($value, .....)
}

à+
0
Rejoignez-nous