IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Parser un fichier csv


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2013
    Messages : 29
    Points : 19
    Points
    19
    Par défaut Parser un fichier csv
    Bonjour,

    Je reviens vers vous aujourd'hui pour un souci sur la fonction fgetcsv.

    Je vous explique en détail :

    1) J'ai un dossier .zip dans lequel j'ai un fichier .csv ainsi que des photos.

    Mon fichier csv à cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "ref_cli"!#"ref_prod"!#"type"!#"nom"!#"prix"!#"quantité"!#"description"!#""!#
    Il contient plusieurs ligne.
    Pas agréable à regarder je vous confirme, mais obligé de m'en servir sans le modifier.

    Je fait le traitement de mon fichier csv de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (file_exists('/home/monsite/www/mondossier/monsousdossier/monclient/produit.csv')) {
    		$fields = array('ref_cli', 'ref_prod', 'type', 'nom', 'quantite',
                    'description') ;
    				$data = array( ) ; // Résultat
    				$fp = fopen('/home/monsite/www/mondossier/monsousdossier/monclient/produit.csv', 'r') ;
    				while ( ($line = fgetcsv($fp, 1000, '!#')) !== FALSE ) {
    					$data[ ] = array_combine($fields, $line) ;
    				}
    				fclose($fp) ;
    				print_r($data) ;
    De là j'ai aucun traitement qui s’effectue, et quelques message (NOTICE et WARNING) :

    PHP Notice: fgetcsv(): delimiter must be a single character
    PHP Warning: array_combine(): Both parameters should have an equal number of elements
    J'aimerais savoir si quelqu'un a déjà eu à faire du parsage de fichier csv.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    et donc il faut résoudre le warning :]
    le message est assez clair, fait donc un var_dump() de $line pour etre sur d'avoir les bonnes données

  3. #3
    Membre habitué
    Ingénieur d'études et de développement
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et de développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Points : 154
    Points
    154
    Par défaut
    Dans ton tableau fields, entre 'nom' et 'quantité' tu as oublié 'prix'

Discussions similaires

  1. Parser un fichier CSV
    Par Swoög dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 8
    Dernier message: 12/09/2011, 12h18
  2. Parser un fichier csv
    Par hjulius dans le forum Documents
    Réponses: 1
    Dernier message: 05/05/2010, 17h10
  3. [script batch] parser un fichier csv
    Par mustang-ffw02 dans le forum Windows
    Réponses: 8
    Dernier message: 09/10/2007, 13h58
  4. [bash] utilisation de CAT/AWK pour parser un fichier CSV
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 32
    Dernier message: 25/07/2007, 23h34
  5. Parser un fichier csv
    Par alison239 dans le forum C
    Réponses: 3
    Dernier message: 10/05/2006, 08h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo