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 :

récupéreation du nombre de colonne par chaque ligne


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut récupéreation du nombre de colonne par chaque ligne
    Bonjour,

    Après l'upload d'un document csv, comment puis je récupérer le nombre de colonne par chaque ligne ?

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'utilises bien fgetcsv ?

  3. #3
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    t'utilises bien fgetcsv ?
    j'ai utilisé fgets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $handle = fopen($filepath, "r");
     
    		while (($buffer = fgets($handle)) !== false)
    puis j'ai récupéré le contenu du fichier csv dans un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ad = explode(";", $buffer);
    Maintenant je veux savoir le nombre de colonne de chaque ligne.

    Merci pour la réponse.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est pour ça, utilise fgetcsv

  5. #5
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Mon fichier contient deux lignes. La première possède 12 colonnes et la deuxième ligne possède 10 colonnes, tant qu'il me retourne 12 dans les deux cas.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ton fichier n'est pas correct montre ton code

  7. #7
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $filename = $_POST["csvfilename"];
    		$filepath = $config["site_path"] . "/uploades/temp/" . $filename;
     
     
    $handle = fopen($filepath, "r");
     
    		while (($buffer = fgetcsv($handle, 1000, ";")) !== false) {
    			 $num = count($buffer);

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pas besoin de faire 2 fois fopen,
    pour le count si ton fichier CSV n'est pas bon c'est normale

  9. #9
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    J'ai pas compris comment mon fichier csv n'est pas bon !

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par jockhip12 Voir le message
    J'ai pas compris comment mon fichier csv n'est pas bon !
    si t'as pas le meme nombre de colonne c'est qu'il est pas bon

  11. #11
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    File ton code complet ainsi que ton csv si tu veux qu'on t'aide!!!!
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  12. #12
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    File ton code complet ainsi que ton csv si tu veux qu'on t'aide!!!!

    Le code est comme le suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    $cols = $_POST["col"];
     
     
    $filename = $_POST["csvfilename"];
    $filepath = $config["site_path"] . "/uploades/temp/" . $filename;
     
    $handle = fopen($filepath, "r");
     
    while (($buffer = fgetcsv($handle, 1000, ";")) !== false) {
     
    $num = count($buffer);
    }
    Ci-joint un imprime écran sur le fichier csv.
    Images attachées Images attachées  

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est quoi le problème ?

  14. #14
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Quand je fait

    Il me retourne 12 pour les deux lignes, tant que les deux lignes ne sont pas équivaux.


  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par jockhip12 Voir le message
    Quand je fait

    Il me retourne 12 pour les deux lignes, tant que les deux lignes ne sont pas équivaux.

    pas compris

  16. #16
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Citation Envoyé par jockhip12 Voir le message
    Ci-joint un imprime écran sur le fichier csv.
    Ah ah Comment t'as pu trouver plus simple de nous envoyer un screenshot excel plutôt que le contenu de ton fichier (qui fait 2 lignes!!!)???
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  17. #17
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    mon fichier csv contient 2 lignes : le premier possèdes 12 cellules et le deuxième possède 10 cellules, je veux tester si les les lignes de mon fichier csv ne sont pas équivaut, je vais afficher un erreur.

    Mais dans mon cas les lignes sont toujours équivaux.

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par jockhip12 Voir le message
    mon fichier csv contient 2 lignes : le premier possèdes 12 cellules et le deuxième possède 10 cellules, je veux tester si les les lignes de mon fichier csv ne sont pas équivaut, je vais afficher un erreur.
    ah oki

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $nums = array();
     
    while (($buffer = fgetcsv($handle, 1000, ";")) !== false) { 
        $nums[] = count($buffer);
    }
     
    if (count(array_unique($nums) > 1 ) {
       // error
    }

  19. #19
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    Comment t'as pu trouver plus simple de nous envoyer un screenshot excel plutôt que le contenu de ton fichier (qui fait 2 lignes!!!)???
    c'est un fichier de test, il contient deux lignes de différents tailles.

  20. #20
    Membre habitué Avatar de jockhip12
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 195
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ah oki

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $nums = array();
     
    while (($buffer = fgetcsv($handle, 1000, ";")) !== false) { 
        $nums[] = count($buffer);
    }
     
    if (count(array_unique($nums) > 1 ) {
       // error
    }
    ça marche pas aussi



    j'ai débugger $nums, le tableau me retourne "1" pour les deux lignes.


Discussions similaires

  1. Nombre de colonnes par ligne
    Par lytog dans le forum C#
    Réponses: 4
    Dernier message: 19/05/2015, 09h58
  2. Compter le nombre de caractères de chaque ligne d'un fichier
    Par Moi302 dans le forum Shell et commandes POSIX
    Réponses: 7
    Dernier message: 28/12/2012, 10h54
  3. Connaître le nombre de colonnes et de lignes d'un Terminal
    Par Yopii dans le forum Général Java
    Réponses: 8
    Dernier message: 06/01/2010, 22h50
  4. Choisir le nombre de colonne et de ligne d'une JTable
    Par narglix dans le forum Composants
    Réponses: 23
    Dernier message: 25/05/2009, 16h54
  5. Dernière colonne de chaque ligne
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/05/2007, 11h33

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