Salut,
Je bute là-dessus depuis hier:
Je dois insérer des enregistrements dans une base à partir d'un fichier csv fourni par l'utilisateur.
J'utilise pour cela fgetcsv pour lire le fichier csv et récupérer un tableau ($ligne) contenant les champs pour chaque ligne du fichier.
Jusqu'ici tout va bien, tout fonctionne.
Dans certains cas, les données fournies par l'utilisateur dans son fichier sont incorrectes. A ce moment-là, au lieu d'insérer les données, je voudrais récupérer la ligne incirminée et la coller dans un fichier .csv qui contiendra toutes les lignes posant problème, pour fournir à l'utilisateur un fichier synthétique et lui éviter de rechercher dans son fichier d'origine les erreurs ligne par ligne.
J'utilise donc fputcsv pour écrire mon tableau $ligne dans un second fichier csv.
Le problème, c'est que ce second fichier fait toujours 0ko.
Voici du code:
Je précise que tout le script fonctionne, à part cette foutue fonction fputcsv qui me fait un fichier vide : $ligne n'est pas vide, c'est bien un tableau contenant des données, $fErreur n'est pas false, comme me l'indique le print qui donne bien un Resource ID, et aucun message d'erreur concernant l'ouverture du fichier ou quoique ce soit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $fichier = "toto"; //Nom du fichier d'erreur. $fichierErr = $fichier." erreurs.csv"; [...] //Plus bas dans le script $fErreur = fopen( $fichierErr, "w+" ); print "<br /><b>".$fErreur."</b><br />"; fputcsv( $fErreur, $ligne, ";" ); fclose( $fErreur );
Je sèche un peu.





Répondre avec citation





Partager