2010-03-22 7 views
0

Je voudrais faire une galerie de toutes les images que j'ai sous mon domaine (mon dossier racine Internet). Toutes ces images sont dans des dossiers différents. Quelle est la meilleure façon de «parcourir» tous les dossiers et retourner les images?Toutes les images disponibles sous un domaine

+0

Je suppose que par "cartes" vous voulez dire "dossiers" ou "répertoires"? (Je pense que la carte en néerlandais est le dossier en anglais?) – Yacoby

+0

Vous avez raison. Actualisé. – Paul

Répondre

1

Utilisez Google Image Search avec site: www.mydomainwithimages.com comme terme de recherche et ceci vous montrera toutes vos images indexées. Cela devrait être tout dans votre domaine tant que votre fichier robots.txt n'exclut pas le robot d'exploration de Google.

+0

Excellente solution. Cependant, je reçois des images étranges de cn.last.fm dans mes résultats de recherche aussi .. Une idée? – Paul

+0

Cela suppose que chaque image est liée à partir d'une page indexée par Google. – meagar

1

Jetez un oeil à opendir vous souhaitez écrire une fonction qui est appelée dans une boucle récursive, la fonction pourrait parcourir les fichiers dans le répertoire spécifique, vérifier l'extension de fichier et retourner les fichiers sous forme de tableau que vous feriez fusionner avec un tableau global.

0

système d'hébergement Dépend, vous pouvez utiliser la ligne de commande avec exec ou PASSTHRU

find /path/to/website/root/ -type f -name '*.jpg' 

Si vous ne pouvez pas faire une telle chose, comme le feu dit, opendir est le chemin à parcourir.

0

Je donnerais une rotation à PHP DirectoryIterator.

C'est pseudo-code non testé, mais il devrait fonctionner un peu comme ceci:

function scanDirectoryForImages($dirPath) 
{ 
    $images = array(); 
    $dirIter = new DirectoryIterator($dirPath); 
    foreach($dirIter as $fileInfo) 
    { 
     if($fileInfo->isDot()) 
      continue; 
     // If it's a directory, scan it recursively 
     elseif($fileInfo->isDir()) 
     { 
      $images = array_merge(
       $images, scanDirectoryForImages($fileInfo->getPath()) 
      ); 
     } 
     elseif($fileInfo->isFile()) 
     { 
      /* This works only for JPEGs, oviously, but feel free to add other 
      extensions */ 
      if(strpos($fileInfo->getFilename(), '.jpg') !== FALSE) 
      { 
       $images[] = $fileInfo->getPathname(); 
      } 
     } 
    } 

    return $images; 
} 

S'il vous plaît ne me poursuivre en justice pas si cela ne fonctionne pas, il est vraiment un peu du haut de mon chapeau , mais en utilisant une telle fonction serait la façon la plus élégante de résoudre votre problème, à mon humble avis.

// edit: Ouais, c'est à peu près la même chose que le feu.

Questions connexes