Php recherche fichier

Fermé
nico57 - 26 juin 2008 à 14:32
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 - 27 juin 2008 à 07:23
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 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 68
26 juin 2008 à 16:07
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 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
26 juin 2008 à 23:05
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 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
26 juin 2008 à 23:19
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 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 68
27 juin 2008 à 07:23
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