Aller au contenu

Lister toutes les occurrences


Sujets conseillés

Posté

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

Posté

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 ;)

Posté

dans la doc de php, fonction glob (qui correspond à tes besoins), peut être à modifier légèrement


<?php
function 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;
}
?>

Posté

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

Posté (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é par francoisch

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...