Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 14 février 2011
Langue : Français
Référencé dans
Navigation
Parser un fichier CSV
Parser un fichier CSV
Cette fonction permet aussi de choisir le séparateur et ajoute une possibilité de condiérer la première ligne comme en-tête...
j'aurai mis un petit : FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES, pour le file,
mais il faut utiliser les outils adaptés à savoir fgetcsv, tu pouvais aussi utiliser array_combine pour mixer les headers
ca me semble plus judicieux de faire quelque chose comme ca :
voir pourquoi pas ajouter des options de "fetch" array, row, object,
mais SplFileObject etant la façon la plus simple et rapide de manipuler un CSV
mais il faut utiliser les outils adaptés à savoir fgetcsv, tu pouvais aussi utiliser array_combine pour mixer les headers
ca me semble plus judicieux de faire quelque chose comme ca :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | function parse_csv($file, $head = false, $sep = ';') { $handle = fopen($file, 'r'); if(false === $handle) { return false; } if(true === $head) { $header = fgetcsv($handle, 0, $sep); if(false === $header) { return false; } } while($row = fgetcsv($handle, 0, $sep)) { if(false === $row) { return false; } if(true === $head) { $data[] = $row + array_combine($header, $row); } else { $data[] = $row; } } if(false === empty($data)) { return $data; } return false; } |
mais SplFileObject etant la façon la plus simple et rapide de manipuler un CSV
Tout à fait d'accord.
De plus en utilisant SplFileObject qui est un Iterator, on peut mettre des filtres ou des limit iterator par dessus.
De plus SplFileObject possède déjà les méthodes nécessaires pour traiter du CSV: http://www.php.net/~helly/php/ext/sp...4b6b530dd04ac7
De plus en utilisant SplFileObject qui est un Iterator, on peut mettre des filtres ou des limit iterator par dessus.
De plus SplFileObject possède déjà les méthodes nécessaires pour traiter du CSV: http://www.php.net/~helly/php/ext/sp...4b6b530dd04ac7
J'avais pas remarqué, bien vu stealth.
Remarque, le besoin classique est plus de recevoir du CSV que d'en émettre (ce n'est en soi pas bien compliqué).
Remarque, le besoin classique est plus de recevoir du CSV que d'en émettre (ce n'est en soi pas bien compliqué).
Pourquoi un file() alors qu'un fgetcsv() existe?
Pourquoi pas dériver la classe SplFileObject en CSVFileObject, ce qui en ferait un itérateur bien pratique
(je ferais une implem plus tard, overbooké là tout de suite...)
(je ferais une implem plus tard, overbooké là tout de suite...)
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.