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
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
A voir également:
- Php recherche fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Fichier host - Guide
4 réponses
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
26 juin 2008 à 16:07
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
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...
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...
[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
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)
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)
[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
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 :)
edit: pour remonter dans les dossier supérieur il te suffit d'indiquer ..\..\gnagna, réste plus qu'a remonter jusqu'au bon niveau :)
Sri Lumpa
Messages postés
177
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
1 juin 2010
69
27 juin 2008 à 07:23
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.