Page 1 sur 1

Création de csv

Posté : 04 janv. 2007, 15:04
par jyer
Bonjour,
J'suis en train de créer un site et j'aimerai pouvoir générer un fichier csv afin que les données récoltées par le formulaire puissent être importées dans un fichier excel.
 $datedujour = date('d/m/y-H:i:s');
    	$filename="../test.csv";
    	$fl=fopen($filename,"a+");
fwrite($fl,"$datedujour;$vtitle;$vfirst_name;$vlast_name;[...]$vlunch_veg\n\r");
		fclose($fl);
Sans surprise, ce petit code fonctionne à merveille. Seulement deux petits problèmes pointent leur nez lorsqu'on le test à font:
1. Pour un fichier csv "en normes" il faudrait que chaque donnée soit encadrée par "...". Ceci n'est pas possible car fwrite nécessite que toutes les données soit comprises dans "...". Ceci n'est cependant pas très grave, puisque oo a pu lire comme même.
2. Plus grave, le séparateur utilisé est ;. Ceci pose problème lorsqu'une donnée contient un é, è, à etc qui se traduit dans mon fichier par é &eagrave; ou &aagrave;. Ainsi, un prénom comme Jéremi va être reporté Jéremi dans le fichier csv. Excel ou oo va alors considéré que Jéremi est au fait deux champs (j&eacute et remi) et remi prendra donc la place de la valeur suivante, créant un déplacement de toutes les valeurs et foutre le bordel dans le tableau.
Donc --> peut-on faire en sorte que les caractères avec des aigus ou graves soit reportés "juste" dans le fichier csv. En d'autre termes, que Jéremi soit écrit Jéremi dans le fichier csv et non Jéremi?
J'espère avoir été compris.
Merci.

Posté : 04 janv. 2007, 15:11
par ouckileou

Posté : 04 janv. 2007, 15:39
par jyer
parfait, merci bcp.
J'avais entre temps résolu le problme en mettant des | et en configurant excel en conséquence...

Posté : 04 janv. 2007, 15:47
par netsupra
Salut,
php a des fonctions dediées au csv :
fgetcsv()
fputcsv()

Posté : 04 janv. 2007, 16:42
par Xenon_54
Super! J'avais jamais vu ces fonctions.

On en apprend à tous les jours. :P