|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Le format de fichier texte CSV est aujourd'hui un standard dans l'échange de données entre applications d'éditeurs différents. Format par défaut de MS Excel, il est également utilisé par une pléthore d'autres applications non-MS, du fait de sa simplicité d'implémentation : les données sont séparées par une virgule, ce qui a donné son nom au format (Comma-Separated Values). Même s'il ne dispose pas d'une spécification précise, c'est un standard industriel de facto de la période pré-XML.
PHP dispose d'une fonction de chargement de fichier CSV, fgetcsv(), depuis sa version 3.0.8 du 22/05/99, mais ce n'est que depuis sa version 5.1 (16/08/05) que PHP peut nativement écrire des fichiers dans ce format, avec fputcsv(). Là où fgetcsv() recherche les champs CSV dans la ligne courante du fichier chargé (et les renvoie sous forme de tableau), fputcsv() formate un tableau en champs CSV, et sauve le tout dans un fichier.
Nous avons déjà abordé fgetcsv() (lire notre article du 14/12/04), il est temps de se pencher sur sa contrepartie. fputcsv() fonctionne de la même manière que fputs(), mais prend un tableau en second argument, et les deux arguments suivants définissent le séparateur et l'encadreur, dans le cas où le format doit différer des standards virgule et guillemet.
Ainsi, pour écrire dans un fichier les informations équivalentes à ce tableau :
Parts de marché des navigateurs utilisés par les professionnels français
(en milliards d'euros)
|
Période
|
IE
|
Firefox
|
Autres
|
Avril 2006
|
70,4
|
20,9
|
8,7
|
Mars 2006
|
71,4
|
20,4
|
7,9
|
...on passera par le code suivant :
<?php
$data = array(
array(Période, IE, Firefox, Autres),
array('Avril 2006', '70,4', '20,9', '8,7'),
array('Mars 2006', '71,4', '20,4', '7,9')
);
if ($f = @fopen('usage.csv', 'w')) {
foreach ($data as $ligne) {
fputcsv($f, $ligne);
}
fclose($f);
}
else {
echo "Impossible d'accéder au fichier.";
}
?>
Les différents tableaux pouvant être produits dynamiquement, voire chargés depuis un autre fichier CSV, il devient possible de se créer rapidement un système de stockage par fichiers texte, dernière étape avant le passage à des solutions plus solides, comme SQLite ou MySQL.
|