Php recherche fichier

nico57 -  
Sri Lumpa Messages postés 177 Statut Membre -
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 ?
A voir également:

4 réponses

Sri Lumpa Messages postés 177 Statut Membre 69
 
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
[o.o]REplay Messages postés 385 Statut Membre 28
 
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
[o.o]REplay Messages postés 385 Statut Membre 28
 
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
Sri Lumpa Messages postés 177 Statut Membre 69
 
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