Hello :)
J ai crée un systeme de traitement de fichier.
Ce que je veut c est que via une interface, l'utilisateur pose son csv via un input type file. Je souhaiterais que lorsqu'il pose son csv, le csv soit comparer avec ce qu'il y a dans la BDD, si ont trouve des mail dans le fichier csv qui sont identique avec des mail qu il y a dans la BDD alors ont supprime ce doublon du CSV, a la fin de ce traitement, je souhaiterais que le fichier soit retournée a l'utilisateur (qu il puisse le télécharger) sans les doublon ;)
Par exemple dans ma BDD j ai : toto@gmail, titi@gmail.com
Dans la fichier que je vais upload j ai : toto@gmail, titi@gmail.com, tutu@gmail.com
Quand je récupère mon fichier upload après qu il a était comparée dans la BDD je veut qu il reste que : tutu@gmail.com
Et je bloque sur la partie ou ont traite les doublons .. j ai chercher sur pleins de site et de forum et je n ai pas trouver de solution, ca fait un moment que je suis sur ce bug et cette outil doit etre livrer dans les temps .. :(
<?php
// V�rifie si la chaine ressemble � un email
//if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
// echo 'Cet email est correct.';
//} else {
// echo 'Cet email a un format non adapt�.';
//}
echo "coucou";
$dossier = 'upload/'; //* Je cr�e un dossier pour herberger mes fichier temporaire
$fichier = basename($_FILES['fileup']['name']);
//$taille_maxi = 200000;
$taille = filesize($_FILES['fileup']['tmp_name']);
$extensions = array('.csv', '.txt'); //*Je cr�e mes extentions
$extension = strrchr($_FILES['fileup']['name'], '.');
$import=$_POST['import'];
$ignore=($_POST['ignore']);
$delimiter = $_POST['delimiteur'];
$separateur = $_POST['separateur'];
//D�but des v�rifications de s�curit�...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = '';
}
//if($taille>$taille_maxi)
//{
// $erreur = 'Le fichier est trop gros...';
//}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'����������������������������������������������������',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fileup']['tmp_name'], $dossier . $fichier)){
// Je lis mon fichier csv
$row = 1;
if (($handle = fopen("upload/".$fichier, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, $separateur, $delimiter)) !== FALSE) {
if ($row > $ignore){
$num = count($data);
// print_r($data);
if (filter_var($data[$import], FILTER_VALIDATE_EMAIL)){ //Je filtre les mail si le mail est ok alors je lance la requete
$requette = $db->prepare("SELECT `hardbounce_email` FROM `hardbounce` WHERE `hardbounce_email` != ".$data[$import]." ");
$requette->execute();
$resultat = $requette->fetchAll(PDO::FETCH_ASSOC);
//Ouverture d'un nouveau fichier
$chemin = $_POST['chemin'].".csv";
if(!empty($resultat)){
$fichier_csv = fopen("import/".$chemin, 'w+');
fprintf($fichier_csv, chr(0xEF).chr(0xBB).chr(0xBF)); //Pour les caractere speciaux de excel
// fermeture du nouveau fichier csv
$lignes[] = array($data[$import]) ;
// Boucle foreach sur chaque ligne du tableau
foreach($lignes as $key => $valeur){
$newhandle=fputcsv($fichier_csv, $valeur, $delimiter);
}
fclose($fichier_csv);
}
}
}
$row++;
}
echo '<div class="lien">Le fichier a etait traiter ! </br> Il y a eu <span class="green"> '.$row.' ligne </span> traiter </br> <a href="import/'.$chemin.'">Telecharger le fichier</a></div> ';
fclose($handle);
}
// echo '<div class="container-fluid">'
// . '<div class="row">'
// . '<div class="col-lg-12 sucess_envoi">'
// . '<span class="">Upload effectu� avec succ�s!</span><span class="btn-liste"><a href="index.php?nav=ListeHardbounce.php"> Voir la liste </a></span>'
// . '</div>'
// . '</div>'
// .'</div>';
}else{
echo '<span class="echec_envoi">Echec de l\'upload !</span>';
}
}
else
{
echo $erreur;
}
?>