par
jduv » 16 mars 2006, 16:18
Re bonjour,
J'ai un blocage avec mon fgetcsv,
J'arrive à afficher le contenu d'un fichier csv par :
if($myfile=fopen($nom_fichier,"r"))
{
print("<TABLE>\n");
$nb_donnees=0;
while (!feof($myfile))
{
print ("<TR>\n");
$myfield=fgetcsv($myfile,1024);
$nb_donnees = $nb_donnees + count($myfield);
for ($n=0;$n<count($myfield);$n++)
{
print("\t<TD>");
print($myfield[$n]);
print("</TD>\n");
}
print("<TR>\n");
}
//print $myfield;
print("</TABLE>\n");
}
echo "nombre de donnees : ".$nb_donnees."<br/>";
fclose($myfile);
ce qui fonctionne trés bien je compte le nombre de champs, ok,
Mais je souhaiterai profiter de la lecture du fichier pour distribuer les champs dans un tableau pour pouvoir ensuite manipuler les données avant de faire des insert dans mes tables.
Je ne connais pas de fonction qui fasse cela directement ( je comptai sur fgetcsv ) ?
Pour l'instant tous mes essais sont sans résultats.
J'ai quand même essayé différement avec qlq chose comme ceci :
$handle = fopen ($filename, "r");
$contents = fread ($handle, filesize ($filename));
$tab = explode(",", $contents);
echo "nb tab : ".count($tab)."<br/>";
for ($i=0;$i<count($tab);$i++){
echo "tab".$i." : ".$tab[$i]."<br/>";
}
fclose ($handle);
Mais bizzarement, certains séparateurs de mon fichier csv ne sont pas interprétés et le nombre de champs trouvés n'est pas correct.
Si quelqu'un à une nouvelle piste à explorer merci d'avance