francoisch Posté 11 Février 2011 Posté 11 Février 2011 Bonjour Je sais lister tous les fichiers dont le nom répond à un critère, comme *.gif, présents dans un répertoire de site Web. Je cherche à faire la même chose pour tous les dossiers de larborescence dun site Web. Jai cherché sans trouver jusquici ; merci par avance de votre aide. Francois
captain_torche Posté 11 Février 2011 Posté 11 Février 2011 Tu vas avoir besoin de faire une fonction récursive. En gros : ta fonction liste tous les fichiers et dossiers de ton répertoire. Si c'est un fichier, il vérifie son extension et fait ses bidouilles s'il s'agit de gif S'il s'agit d'un dossier, la fonction s'appelle elle-même
francoisch Posté 12 Février 2011 Auteur Posté 12 Février 2011 Merci Captain de ta réponse. Ton idée est excellente, ça va être un très bon exercice. Francois
SStephane Posté 12 Février 2011 Posté 12 Février 2011 dans la doc de php, fonction glob (qui correspond à tes besoins), peut être à modifier légèrement <?phpfunction rglob($pattern='*', $flags = 0, $path=''){ $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); $files=glob($path.$pattern, $flags); foreach ($paths as $path) { $files=array_merge($files,rglob($pattern, $flags, $path)); } return $files;}?>
Dan Posté 12 Février 2011 Posté 12 Février 2011 Si tu as accès au shell Linux, tu peux aussi utiliser "find"
francoisch Posté 12 Février 2011 Auteur Posté 12 Février 2011 bonjour J'ai trouvé dans un forum cette fonction: <?php function list_dir($name) { if ($dir = opendir($name)) { while($file = readdir($dir)) { echo "$file<br>\n"; if(is_dir($file) && !in_array($file, array(".",".."))) { list_dir($file); } } closedir($dir); } } list_dir("."); ?> Mais elle semble bien ne faire qu'une partie du travail, n'allant pas au bout des plus bas niveaux de l'arborescence, pour une raison que j'ignore. A votre avis? Je vais essayer vos propositions. Francois
francoisch Posté 12 Février 2011 Auteur Posté 12 Février 2011 (modifié) bonjour SStephane Ta fonction liste apparement tous les répertoires (difficile à vérifier, j'en ai un grand nombre); je vais essayer de la modifier pour qu'elle liste aussi les fichiers présents dans les répertoires. Francois -------------------------------------------------------------------------- Ca y est, c'est bon, la fonction rglob liste bien tous les fichiers de toute l'arborescence. J'ai encore un peu de mise au point à faire mais ça va dans le bon sens. Merci à vous Francois Modifié 13 Février 2011 par francoisch
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant