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 :

Scandir, array et foreach [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut Scandir, array et foreach
    Salut à tous, je viens vers vous car j'ai une problématique avec la fonction scandir.
    En effet je cherche à scanner un dossier (contenant des picto de drapeaux en png), d'y stocker dans un tableau et de faire un foreach sur le tableau.

    Voici l'arborescence de mes fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    /www
       /admin073
           fichier_admin.php
      /img
         /flags
            Listes des png
    Et voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     $flags = scandir(./../img/flags);
    foreach($flags as $key => $img);
    {
    	echo $flags[$key];
    	echo "<br />";
    }
    Et bizarrement, il ne m'affiche que le dernier élément du tableau.
    Je n'arrive pas à comprendre pourquoi.

    L'un d'entre vous sait-il ce qu'il se passe?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as contrôlé le contenu de $flags ?

    Au passage $flags[$key] c'est $img.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Alors oui j'ai contrôle le $flags.
    Puisque avant le foreach j'avais fait un print_r et j'avais bien tout le contenu du dossier.
    Egalement j'ai essayé de faire un $img et j'obtiens le même résultat. C'est vrai que j'ai oublié de le remettre.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu es sûr de bien nous montrer le code tel qu'il est ?

    Si tu fais un test comme ça par exemple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo count($flags);
    foreach($flags as $key => $img);
    {
    	$i++;
            echo $i;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Pour le foreach avec $i il ne m'affiche que "1".
    J'ai essayé un count($flags) il n'est pas apparu....

    Du coup voici le "vrai" code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    $currentDir = dirname(__FILE__);
    define('_TD_ROOT_DIR_', realpath($currentDir.'/..'));
    define('_TD_FLAGS_DIR_',            _TD_ROOT_DIR_.'/img/flags/');
     
    $flags = scandir(_TD_FLAGS_DIR_);
     
    foreach($flags as $key => $img);
    {
    echo $img;
    echo "<br />";
    }

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo 'count : ';
    var_dump(count($flags));
    echo '<br/>';
    var_dump($flags);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Voici ce que cela me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     count : int(249)
    array(249) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(6) "ad.png" [3]=> string(6) "ae.png" [4]=> string(6) "af.png" [5]=> string(6) "ag.png" [6]=> string(6) "ai.png" [7]=> string(6) "al.png" [8]=> string(6) "am.png" [9]=> string(6) "an.png" [10]=> string(6) "ao.png" [11]=> string(6) "ar.png" [12]=> string(6) "as.png" [13]=> string(6) "at.png" [14]=> string(6) "au.png" [15]=> string(6) "aw.png" [16]=> string(6) "ax.png" [17]=> string(6) "az.png" [18]=> string(6) "ba.png" [19]=> string(6) "bb.png" [20]=> string(6) "bd.png" [21]=> string(6) "be.png" [22]=> string(6) "bf.png" [23]=> string(6) "bg.png" [24]=> string(6) "bh.png" [25]=> string(6) "bi.png" [26]=> string(6) "bj.png" [27]=> string(6) "bm.png" [28]=> string(6) "bn.png" [29]=> string(6) "bo.png" [30]=> string(6) "br.png" [31]=> string(6) "bs.png" [32]=> string(6) "bt.png"

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,

    après ton foreach il y a un point virgule qu'il faut enlever

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach($flags as $key => $img); //pas point de virgule

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Raaaaaaa je suis aveugle.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Je n'ai pas envie de répondre autre chose que:

    Effectivement.

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

Discussions similaires

  1. [PHP 5.4] manipulation les données d'un array avec foreach et for
    Par aspkiddy dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2014, 00h22
  2. Différence: foreach((array)) et foreach()
    Par clement106 dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2010, 21h45
  3. [Tableaux] Tableau (array) PHP/ foreach
    Par KOUTO dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2009, 00h54
  4. [PHP/SQL] foreach sur array multiples
    Par Flushovsky dans le forum Langage
    Réponses: 1
    Dernier message: 18/09/2006, 10h49
  5. [Tableaux] Array sur deux colonnes et foreach..
    Par shadeoner dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2006, 08h46

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