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 :

Recherche de fichiers.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut Recherche de fichiers.
    Bonsoir à tous,

    Voilà, j'essaye d'isoler les fichier index.html htm et php de mes sous-dossier.

    Il y'a quelques chose qui m'échappe après plusieurs essais et lecture de la doc.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
            $i = 0;
            $currentDir = dir('.');
            $files = array();
     
            while($name = $currentDir->read()) {
                    echo($name."<br>");
                    if($name != "." && $name != ".." && is_dir($name)) {
                            $files[] = $name;
                    }
            }
            $currentDir->close();
     
            sort($files);
     
            foreach($files as $subFolder) {
                    $subFolder = dir("./".$subFolder);
                    while($index = $subFolder->read()) {
                            if(is_file($index) && ($index == "index.html" || $index == "index.htm" || $index == "index.php")) {
                                    echo("index :  ".$files[$i]."/".$index."<br>");
                            }
                    }
                    $subFolder->close();
                    $i++;
            }
            $subFolder->close();
     
    ?>
    Voilà, déjà j'ai 4 index.php qui s'affichent alors que j'ai 5 dossiers dans la variable $files[].

    Est-ce la bonne méthode ?

    Merci à vous.

    EDIT : après un nouvel essai, il rentre bien dans tous les dossiers de la variable $files[] mais il ne trouve que les index.php, pas les autres... C'est le is_file() qui pose problème...

    EDIT2 :

    Est-ce que quelqu'un peut me dire la différence entre ça : (cas 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(is_file($index) && ($index == "index.html" || $index == "index.htm" || $index == "index.php"))
    et ça : (cas 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(is_file($index) && $index == "index.html" || $index == "index.htm" || $index == "index.php")
    De plus, j'ai créé, pour le test, deux dossiers. Dans l'un j'ai créé dans le terminal avec la commande touch un fichier index.htm et dans l'autre un index.html. Dans le cas1 je ne trouve aucun des deux fichiers (mais tous les index.php sont là), avec le cas2 je trouve le index.htm mais pas le html.
    C'est incompréhensible, les deux fichiers sont vides, j'ai essayé aussi avec quelques caractères à l'intérieur, et avec le terminal j'ai exactement les même infos (droits, poids, etc.)

    Merci pour vos lumières.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    J'ai un peu perdu le fil de là où tu en étais avec tous ces edit

    Pour répondre à cette question :
    Citation Envoyé par Gueuz Voir le message
    EDIT2 :

    Est-ce que quelqu'un peut me dire la différence entre ça : (cas 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(is_file($index) && ($index == "index.html" || $index == "index.htm" || $index == "index.php"))
    et ça : (cas 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(is_file($index) && $index == "index.html" || $index == "index.htm" || $index == "index.php")
    Je te conseille de lire La précédence des opérateurs. En bref, && est prioritaire sur ||.

    Donc A && B || C équivaut à (A && B) || C, ce qui est vrai si A et B sont vrais, ou si C est vrai ; alors que A && (B || C) est vrai si A est vrai et si B ou C ou les deux sont vrais.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    Merci pour ra réponse et désolé pour les multiples EDIT

    Bon, pour les priorités, je connais le principe mais je ne prenais pas en compte que le is_file() puisse me retourner un false.

    Je pense que je ne comprends pas cette simple fonction ou alors un truc (que je n'arrive toujours pas à déterminer précisément) m'échappe.

    En gros, dans ma première boucle je récupère les dossiers présents dans mon dossier courant (au passage j'avais écris en première instance is-dir() et apparemment cale fonctionné bien... ?? hum !)

    Dans ma deuxième boucle, pour simplifier et continuer dans ma série de test, je n'ai plus qu'un : Comme je parcours tous les sous-dossiers, je devrais avoir affichés tous les fichiers, hors là je n'ai que mes fichiers index.php (je viens de faire le test en supprimant la condition if et garde le echo, tous les fichiers s'affichent).


  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Quel genre de fichier as-tu d'autre ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    Avant de répondre à ta question, je voudrais essayer avec un iterator mais rien ne s'affiche. Comme je dois faire un new DirectoryIterator, faut-il faire quelque chose de spécial ? (comme les include par exemple, en C).

    Sinon, j'ai plusieurs fichiers, sans mon if, voici un exemple de ce qui s'affichent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Configuration.class.php
    cache
    .htaccess
    404.html
    .
    constant.php
    Functions.class.php
    header.php
    humans.txt
    .gitignore
    EDIT : je continu de chercher mais une petite précision, voici les droits sur un de mes fichiers (le index.htm) La première valeur est bien un ' - '. Pas de lien symbolique ou autre...

Discussions similaires

  1. [Système][fichier] recherche de fichier dans tout le disque dur
    Par helonear dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 15/12/2010, 10h43
  2. Recherche dans fichiers
    Par Tchinkatchuk dans le forum Linux
    Réponses: 2
    Dernier message: 17/06/2005, 10h32
  3. Réponses: 14
    Dernier message: 25/10/2004, 21h33
  4. batch de recherche de fichier ...
    Par Félia dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2004, 15h54
  5. Recherche support fichier
    Par sydiop dans le forum Informix
    Réponses: 5
    Dernier message: 18/03/2004, 10h15

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