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 :

lecture du contenu d'un répertoire


Sujet :

Langage PHP

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut lecture du contenu d'un répertoire
    Bonjour,

    Pourquoi ce code ne marche pas ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    $rep1='uploads';
    echo "contenu de ".$rep1." :<br>";
    $rep=opendir($rep1);
    $i=0;
    while ($file == readdir($rep))
    if (($file!='.')&&($file!='..'))
    echo 'fichier '.$i++ .': '.$file.'<br>';
    closedir($rep);
    ?>

  2. #2
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2007
    Messages : 70
    Points : 82
    Points
    82
    Par défaut
    Salut,

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($file == readdir($rep))
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(($file = readdir($rep)) !== FALSE)
    Comme indiqué dans la FAQ.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    sinon la fonction scandir parait plus approprié pour ton besoin..

    http://www.php.net/manual/fr/function.scandir.php

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Sinon, en objet avec DirectoryIterator:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $it = new DirectoryIterator(dirname(__FILE__));
    foreach ($it as $entry) 
      var_dump($entry);

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Benjamin Delespierre, il doit y avoir un truc qui ne va pas :
    Fatal error: Cannot instantiate non-existent class: directoryiterator in...
    Mais c'est surtout pour la culture, vu que la solution de Cobalt59 va très bien (que je préfère à scandir car l'affichage ne me plait pas).

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Benjamin Delespierre, il doit y avoir un truc qui ne va pas :
    Citation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Cannot instantiate non-existent class: directoryiterator in...
    En effet, c'est DirectoryIterator le nom de la classe et pas directoryiterator.

    Voici un exemple un peu plus complet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $it = new DirectoryIterator(dirname(__FILE__));
    foreach ($it as $fileinfo) {
      if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
      }
    }

  7. #7
    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 727
    Points
    10 727
    Par défaut
    sinon avec PHP 5.3 FilesystemIterator fait automatiquement le skip dot , de plus qu'on a __DIR__

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $it = new FilesystemIterator(__DIR__);
     
    foreach($it as $fileinfo)
    {
        var_dump($fileinfo->getFilename());
    }

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    En fait, c'est le serveur de 1&1 qui déc..., car bien que le fichier que j'y transfère contient bien des majuscules, il les retire :
    Fatal error: Cannot instantiate non-existent class: filesystemiterator in ...

  9. #9
    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 727
    Points
    10 727
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    En fait, c'est le serveur de 1&1 qui déc..., car bien que le fichier que j'y transfère contient bien des majuscules, il les retire :
    upload bien les fichiers en mode binaire et pas ascii
    mais normalement PHP ne tien pas en compte de la casse des classes, quelle est ta version de PHP ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump(phpversion());

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    upload bien les fichiers en mode binaire et pas ascii
    Je ne sais pas ce que fait mon logiciel FTP ; sinon, j'ai fait un transfert avec Filezilla, et pareil.
    Mais merci pour connaître la version de PHP, mais phpinfo la donne déjà : 4.4.9, donc <5 : y a-t-il moyen de l'upgrader ?

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 243
    Points
    20 243
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Je ne sais pas ce que fait mon logiciel FTP ; sinon, j'ai fait un transfert avec Filezilla, et pareil.
    Mais merci pour connaître la version de PHP, mais phpinfo la donne déjà : 4.4.9, donc <5 : y a-t-il moyen de l'upgrader ?
    Voir la faq de 1&1 qui explique comment passer de php4 à 5

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

Discussions similaires

  1. Lecture récurrente contenu répertoire
    Par Terryan_999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/02/2011, 17h39
  2. lecture du contenu d'un répertoire
    Par laurentSc dans le forum Langage
    Réponses: 4
    Dernier message: 04/10/2010, 15h57
  3. Copier le contenu d'un répertoire
    Par bianconeri dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/12/2006, 13h00
  4. Lister le contenu d'un répertoire distant
    Par dody dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 17h23
  5. Copie du contenu d'un répertoire vers un autre
    Par IG88 dans le forum Windows
    Réponses: 4
    Dernier message: 30/07/2004, 14h33

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