Je ne connais pas grand chose au PHP et il y'a quelque chose qui
m'échappe lorsque que je veux ressortir chaque chaîne séparé par un
point virgule d'un fichier .csv.
Comme illustré ci-dessous , je suis obligé de passer par implode () si
je veux pouvoir ressortir chaque variable $tab correctement et je ne
saisis pas pourquoi ....
$path= "fichier.csv";
$file = implode ('',file("$path"));
$tab = explode (';' , $file);
print_r ($tab);
Si je fais :
$path= "fichier.csv";
$tab = explode (';' ,file ("$path"));
print_r ($tab);
Je tombe sur :
Notice : Array to string conversion in h:\... on line XXX
Array
(
[0] => Array
)
Par quoi faudrait-il que je remplace la fonction file() pour éviter
cela et est-ce que quelqu'un pourrait m'expliquer pourquoi ...
Je te remercie c'est effectivement une solution mais malheureusement ça
ne fonctionnait pas car en exportant un tableau excel au format csv ,
Excel ne cloture pas les lignes par un point virgule donc je me
retrouvais avec la dernière valeur de la ligne et la première de la
ligne suivante pour une seule clé donc j'ai dû faire autrement .
J'ai trouvé cette fonction dans un bouquin :
function my_fgetcsv($filename,$sep)
{
$arr=file($filename);
$resultat=array("");
foreach ($arr as $elem)
{
$str=str_replace("*"," " ,$elem);
$buf=explode ($sep,$str);
$resultat=array_merge ($resultat,$buf);
}
array_shift($resultat);
return $resultat;
}
puis j'ai ajouté ça
$arr=my_fgetcsv("fichier.csv",";");
while ($val=each($arr))
{
echo "clé :",
"",$val[key],"";
echo " valeur : ","",$val[value],"","
";
}
Ca fonctionnait parfaitement avec EasyPHP1.6 mais malheureusement plus avec la 1.8 ...
Notice: Use of undefined constant key - assumed 'key'
J'en déduis que le probléme provient de register_globals qui est passé à OFF .Je serais incapable de contourner ce problème pour
le moment mais je vais commencer à me renseigner . Si vous avez
des suggestions n'hésitez pas , Merci d'avance ...
"J'en déduis que le probléme provient de register_globals qui est passé à OFF .Je serais incapable de contourner ce problème pour le moment mais je vais commencer à me renseigner . Si vous avez des suggestions n'hésitez pas , Merci d'avance ...
"
Si t'a ce problème en utilisant un serveur comme EasyPHP, donc apache, il faut que tu reconfigure apache et tu fais passer register_global à on...
----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
-----------------