8791 sujets

Développement web côté serveur, CMS

Bonjour à tous.

Voici un petit prob tout bête.

J' extrais une liste d' adresses mail de la BD distante,
y ajoute une virgule pour envoi par PhP fonction Mail,
et les récupère tous dans une variable --> tout va bien

J' extrais cette même liste d' un fichier txt,
les récupère tous dans la variable en y ajoutant la virgule,
mais là j' ai un espace entre adresse et virgule.

ex: mon-adresse@moi ,ton-adresse@toi ,son-adresse@lui

Mon extraction et traitement :
while (  //la boucle qui récupère les adresses
{
$x = $x+1;
if ( $x == 1 )  { $destinataires = $mails_adherents; }
else {$destinataires = $destinataires . "," . $mails_adherents;
}

Savez vous ce qui se passe ?

Merci pour toute aide.
@+
Lespiegle.
Modifié par lespiegle (22 Aug 2011 - 19:06)
Ben a priori tes adresses emails contiennent déjà des espaces. Tu peux les supprimer avec la fonction trim();

PS : Pas besoin de faire $var = $var + $truc pour ajouter une valeur a une variable, tu fais simplement $var .= $truc; Et pour incrémenter un compteur de 1 tu fais juste : $x++;


$destinataires = NULL;
while ()
{
  $x++;
  $destinataires .= ($x == 1) ? trim($mails_adherents) : "," . trim($mails_adherents);
}

Modifié par jb_gfx (23 Aug 2011 - 00:51)
Salut jb_gfx.

No such luck.

Ni trim ni str_replace ne font la différence.

Ceci dit, ça fonctionne.
Les mails sont bien reçus.
Mais c' est pas propre.

PS :
Oui, tu as raison : le shorthand élimine des octets.
Mais pour une lecture aisée du code, je préfère la méthode longue.

@+
Lespiegle.
Modifié par lespiegle (22 Aug 2011 - 18:39)
Oups. Trop vite.

Tu as raison jb_gfx. C' est bien un trim qu' il faut.
Mais à l' estraction
while (  //la boucle qui récupère les adresses
{
[b]$mails_adherents = trim($mails_adherents);[/b]
$x = $x+1;
if ( $x == 1 )  { $destinataires = $mails_adherents; }
else {$destinataires = $destinataires . "," . $mails_adherents;
}

J' avais essayé avec str_replace à l' extraction et sur la variable $destinataires, sans résultat.
Mais avec trim, à l' extraction , c' est bon.

Ce qui appelle une interrogation :
Ce n' est pas un espace qui est en cause,
mais peut-être un retour à la ligne, un Tab ou car null.

La liste du fichier txt (blocnote) a été extraite d' une page Excel et collée dans le blocnote.
Blocnote aurait donc gardé en mémoire un Tab ou autre ?

On en apprend tous les jours.
@+
Lespiegle.
Ton code fais exactement la même chose que le mien sauf qu'il n'est pas optimisé. Donc, à mon avis, tu as oublié de poster une partie importante de ton script, sinon le résultat serait le même.