francoisch Posté 11 Février 2011 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 11 Février 2011 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 12 Février 2011 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
SStephane Posté 12 Février 2011 Partager 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;}?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 12 Février 2011 Partager Posté 12 Février 2011 Si tu as accès au shell Linux, tu peux aussi utiliser "find" Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 12 Février 2011 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 12 Février 2011 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant