Php recherche fichier

Bonjour,
je cherche un moyen simple d 'integrer un petit explorer à mon apllication php
en effet je dois aller récuperer le contenue d un fichier qui peut être nimporte ou sur le DD
une idée serai la bien venue merci ?
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. Si j'ai bien compris, on donne un nom de fichier ou de dossier et ton script va aller le rechercher dans le disque c'est ça ?

    Ce que tu peux faire c'est quelque chose du genre
    result = array();
    $root = "/";
    
    
    function lookAt($rootDir, $lookingFor)
    {
        if(is_dir($rootDir)){
            if(($dir = opendir($rootDir)) !== false){
                while($filename = readdir($dir)){
                    if($filename != '.' && $filename != '..'){
                        if($filename == $lookingFor){
                            result[] = "$rootDir/$filename";
                        }
                        if(is_dir($filename)){
                            lookAt("$rootDir/$filename", $lookingFor);
                        }
                    }
                }
                closedir($dir);
            }
        }
    }

    J'ai pas testé mais ça devrait marcher, par contre c'est un poil bourrin et tu ne pourras explorer à priori que les fichiers et dossiers du dossier racine de PHP...
    0
    1. Bonjour,

      voici l'algo et quelques indices:

      // partir de la racine du disque au debut
      fonction parcourir ($chemin,$nomdufichierrecherché)
      {
      tableau = scandir($chemin); //scandir renvoie dans un tableau tous les dossier et fichiers contenu dans $chemin

      for($i = 2;$i < count(tableau);$i++) //on commence à deux, car scandir renvoie aussi "." et ".."
      {
      si $tableau[$i] nest pas un dossier;
      si $tableau[$i] == $nomdufichierrecherché (attention aux majuscules) ---> fin renvoyer $chemin."antislash".$tableau[$i]
      sinon
      parcourir ($chemin."antislash".$tableau[$i],$nomrecherché); // slash ou antislah suivant unix ou windows
      }
      }

      voila voila :) fonction récursive. Si tu n'as pas compris, demande :)
      bonne continuation.

      ps: si ton disque est vraiment énorme, tu peux toujours utiliser un moteur d'indexation comme phpdig (phpdig.net)
      0
      1. heu autant pour moi, sri lumpa a filé la réponse avant ^^

        edit: pour remonter dans les dossier supérieur il te suffit d'indiquer ..\..\gnagna, réste plus qu'a remonter jusqu'au bon niveau :)
        0
        1. Pour rendre la recherche plus générale (genre parmettre de rechercher tous les fichiers .C par exemple en rentrant *.c), tu peux utiliser la fonction ereg() quand tu compares ton nom de fichier avec ta recherche.
          0