Précédent   Forum du club des développeurs et IT Pro > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 14h20   #1
jemna
Invité de passage
 
Femme
stagiaire
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : stagiaire
Secteur : Enseignement

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
Par défaut Envoyer des pièces jointes à des adresses mail en php en utilisant fichier excel

Bonjour
Je suis débutante en php
J'ai un fichier excel qui contient des adresses mails.
Il faut que je parcours tout fichier et extraire les adresses afin de leurs envoyer un mail avec des pièces jointes
Il faut que l'envoie soit automatique
J'ai inclut la bibliothèque Excel reader mais je suis bloqué
Quelqu'un peut m'aider ?
jemna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 14h32   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 468
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 468
Points : 21 276
Points : 21 276
Montre nous ton code et précise ce qui ne fonctionne pas et ce que tu obtiens.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 14h44   #3
jemna
Invité de passage
 
Femme
stagiaire
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : stagiaire
Secteur : Enseignement

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
Ce code juste pour créer acteurs.xls
Code :
1
2
3
4
5
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$data = new Spreadsheet_Excel_Reader("acteurs.xls");
?>
mais lorsque j’exécute une erreur
Assigning the return value of new by reference is deprecated in C:\wamp\www\Nouveau dossier\excel_reader2.php on line 904
Donc il y'a un problème dans excel_reader2.php
comment je peux avancer pour parcourir le fichier et extraire les adresses mails
et merci
jemna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 15h02   #4
Exia93
Membre Expert
 
Homme
Étudiant
Inscription : avril 2012
Messages : 602
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2012
Messages : 602
Points : 1 053
Points : 1 053
Bonjour,

selon la doc il faut utiliser count() et non sizeof() pour ton $j,
Code :
1
2
3
4
5
//ça
$j = sizeof($ligne);
 
//Remplasser par
$j = count($ligne);
tu peut remplasser ta première boucle for() (celle avec le fgetscsv()) qui est lourde à écrire et à lire par un simple while:
Code :
1
2
3
4
for ($ligne = fgetcsv($fic, 1024, ";"); !feof($fic); $ligne = fgetcsv($fic, 1024, ";")) {
 
//Remplasser par
while( ($ligne = fgetcsv($fic, 1024, ";")) !== FALSE ){
Ensuite que t'affiche ton code ? Quel problème rencontre tu ?


EDIT : Réponse donnée avant la modification du code d'exemple de jemna
Exia93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 15h26   #5
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 468
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 468
Points : 21 276
Points : 21 276
L'erreur que tu rencontres est une information et ne doit pas être bloquante ; est-ce que tu as d'autres problèmes à part celle la ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/01/2013, 15h28   #6
jemna
Invité de passage
 
Femme
stagiaire
Inscription : juin 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Tunisie

Informations professionnelles :
Activité : stagiaire
Secteur : Enseignement

Informations forums :
Inscription : juin 2011
Messages : 7
Points : 0
Points : 0
J'ai créer un fichier texte file.txt dont je vais récupérer tout le fichier excel
Puis j'ai fait appel à la fonction get_addresses($file).
Le problème que le fichier file.txt ne contient que la dernère case du fichier excel et la fonction get_addresses($file) ne fait aucun traitement.
Voiçi le code Quelq'un peut m'aider et me corriger s'il ya une faute dans ce code

<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once 'excel_reader2.php';
$reader=new Spreadsheet_Excel_Reader();
$reader->setUTFEncoder('iconv');
$reader->setOutputEncoding('UTF-8');
$filename="acteurs.xls";
$reader->read($filename);

foreach($reader->sheets as $k=>$data)
{
echo "\n\n ".$reader->boundsheets[$k]."\n\n";

foreach($data['cells'] as $row)
{
foreach($row as $cell)
{

4
$f = fopen ( "file.txt" , "w" );
fwrite ( $f , "$cell\t" );
fclose ( $f );
// echo "$cell\t";
get_adresses($f);

}
echo "\n";
}
}


function get_addresses($file) {
$breaking = array(' ', ',', '>', '<', "\t", "\r", "\n");
$addr = array();
$data = explode('@', file_get_contents($file));
// Alternative for PHP < 4.3.0:
// $data = explode('@', implode('', file($file)));
$n = count($data);
for ($i = 1; $i < $n; $i++) {
$addr[$i-1] = '@';
$begin = 0;
$end = strlen($data[$i-1]) - 1;
while ((!in_array($data[$i-1]{$end}, $breaking)) and ($begin <= $end)) {
$addr[$i-1] = $data[$i-1]{$end} . $addr[$i-1];
$end--;
}
$begin = 0;
$end = strlen($data[$i]) - 1;
while ((!in_array($data[$i]{$begin}, $breaking)) and ($begin <= $end)) {
$addr[$i-1] .= $data[$i]{$begin} ;
$begin++;
}
}
if (count($addr) == 0) {
return FALSE;
} else {
return $addr;
}
}
?>
Quelqu'un peut m'aider
jemna est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h39.


 
 
 
 
Partenaires

Hébergement Web