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

Langage PHP Discussion :

Caractères BOM dans la lecture d'un CSV ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut Caractères BOM dans la lecture d'un CSV ?
    Bonjour,
    je crée cette nouvelle discussion pour avoir un titre plus approprié.

    Je lis un fichier CSV, donc la première ligne me fournit le header sauf que le premier caractère du header est encadré par 2 double-quotes. Pourquoi ?

    code pour déterminer le header :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if (isset(self::$handle)) {
                rewind(self::$handle);//pointer au début du fichier
                $header = fgetcsv(self::$handle,1024,",",'"');

    début du fichier CSV (édité avec PHPSTORM) :
    "SESAID","ALTERNATEIDS","PLATFORM","PLATFORMOWNER","PUBLISHER","APPLICATIONNAME","HFMCODE",etc
    var_dump de $header
    array(23) {
    [0]=>
    string(11) ""SESAID""
    [1]=>
    string(12) "ALTERNATEIDS"
    [2]=>
    string(8) "PLATFORM"
    [3]=>
    string(13) "PLATFORMOWNER"
    [4]=>
    string(9) "PUBLISHER"
    [5]=>
    string(15) "APPLICATIONNAME"
    [6]=>
    string(7) "HFMCODE"
    etc

  2. #2
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour Laurent,

    Te connaissant, je suis persuadé que tu essaies de corriger des erreurs que tu as toi-même produites, ou provoquées en pensant en corriger d'autres...
    Il faut que tu arrêtes de jouer aux apprenti-sorciers.

    • -> Mets en pièce jointe un extrait de fichier csv (au moins la 1ère ligne, et la 2ème, avec faux-texte si tu préfères).

    Explique-nous :
    • comment sont générés ces fichiers csv, et par qui (par toi ? ... ?)
    • sont-ils toujours de la même forme ?
    • ... ?

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Te connaissant, je suis persuadé que tu essaies de corriger des erreurs
    y a 10 minutes :
    Citation Envoyé par laurentSc Voir le message
    En fait, c'est pour contourner le problème décrit dans https://www.developpez.net/forums/d2...lecture-d-csv/.


    Ces fichiers CSV sont en fait des extracts d'une autre base de données (je ne les maîtrise pas du tout). Ils ont toujours le même format que la pièce jointe (zippée car le format csv n'est pas accepté) et le même en-tête.
    Fichiers attachés Fichiers attachés

  4. #4
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Dans le fichier csv joint (ouvert avec Notepad++ -> encodage : UTF-8-BOM) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "SESAID,""ALTERNATEIDS"",""PLATFORM"",........,""MANAGEREMAIL"""
    "SESA1000,""(none)"",""Software Engineering"",........,""adresse_manager@se.com""".
    la 1ère ligne commence par :
    • "SESAID, : il manque un "
    • ""ALTERNATEIDS"",..... : là, ils sont en double
    • ,""MANAGEREMAIL""" : et en fin de ligne, on retrouve le " manquant !

    (idem sur la ligne suivante !)

    Comment veux-tu obtenir de bons résultats avec un fichier csv de départ aussi mal fichu ???

    Citation Envoyé par laurentSc Voir le message
    Ces fichiers CSV sont en fait des extracts d'une autre base de données
    AVANT d'essayer de le (mal)traiter, demande-toi COMMENT il a été généré (quel logiciel ou opération ? de quelle manière ?...).
    Manifestement, le problème vient de là.

    Citation Envoyé par laurentSc Voir le message
    (je ne les maîtrise pas du tout)
    C'est le moins qu'on puisse dire....

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Re

    Si tu ne peux pas faire rectifier la construction du CSV par le fournisseur, à mon avis il te faut, à coup de regexp, rendre le fichier valide pour enfin pouvoir l'utiliser.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    ...il te faut, à coup de regexp...
    @ProgElecT
    HOULA !! NE DIS PAS CA, MALHEUREUX !!

    frankensteinSc fait déjà assez de dégâts tout seul !

    NON : il faut D'ABORD identifier l'ORIGINE du problème.

  7. #7
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    Merci pour vos remarques à tous les 2. Je vais effectivement tenter les regexp. Si j'ai du mal (probable), je reviendrai.

    EDIT :
    Citation Envoyé par jreaux62 Voir le message
    @ProgElecT
    HOULA !! NE DIS PAS CA, MALHEUREUX !!
    trop tard

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 11/01/2013, 14h49
  2. [MySQL] caractère indésirable dans sortie var_export dans fichier .csv
    Par Snooze59 dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 11/08/2010, 12h49
  3. Lecture des caractères accentués dans un fichier
    Par albertgl dans le forum MATLAB
    Réponses: 15
    Dernier message: 04/03/2010, 15h35
  4. Réponses: 2
    Dernier message: 07/05/2009, 15h50
  5. Réponses: 4
    Dernier message: 29/02/2008, 11h11

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