2010-03-22 3 views
0

Я хотел бы создать галерею всех изображений, которые у меня есть под моим доменом (моя интернет-корневая папка). Все эти изображения находятся в разных папках. Каков наилучший способ «просматривать» все папки и возвращать изображения?Все доступные изображения под доменом

+0

Я предполагаю, что «карты» означают «папки» или «каталоги»? (Я думаю, что карта на голландском языке является папкой на английском языке?) – Yacoby

+0

Вы правы. Обновлено. – Paul

ответ

1

Используйте Google Image Search с site: www.mydomainwithimages.com как поисковый запрос, и это покажет вам все ваши индексированные изображения. Это должно быть все в вашем домене, пока ваш файл robots.txt не исключает искателя Google.

+0

Отличное решение. Однако я получаю некоторые странные изображения из cn.last.fm в моих результатах поиска также. Любая идея? – Paul

+0

Предполагается, что каждое изображение связано с какой-либо страницей, которую индексирует Google. – meagar

1

Посмотрите на opendir, вы хотите написать функцию, которая вызывается в рекурсивном цикле, функция может циклически перебирать файлы в определенном каталоге, проверять расширение файла и возвращать файлы в виде массива, который вы бы слияние с глобальным массивом.

0

Зависит от хостинговой системы, вы можете использовать командную строку с Exec или PassThru

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

Если вы не можете сделать такую ​​вещь, как сказал огонь, opendir это путь.

0

Я бы дал PHP DirectoryIterator спину.

Это непроверенный псевдокод, но он должен работать немного как это:

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

Пожалуйста, не посудить меня, если это не работает, это действительно свой родом из верхней части моей шляпы , но использование такой функции было бы самым элегантным способом решения вашей проблемы, imho.

// edit: Да, это в основном то же самое, что указано огнем.

Смежные вопросы