cs_GregL
Messages postés5Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention14 décembre 2005
-
12 déc. 2005 à 18:23
WhiteDwarf
Messages postés510Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention23 mai 2008
-
15 déc. 2005 à 11:47
Hello ,
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 ...
cs_GregL
Messages postés5Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention14 décembre 2005 13 déc. 2005 à 23:02
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 ...
WhiteDwarf
Messages postés510Date d'inscriptionsamedi 29 décembre 2001StatutMembreDernière intervention23 mai 2008 15 déc. 2005 à 11:47
"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
-----------------