php «foreach» Сканирование папок с каталогами изображений, получение большого и большого пальца (используется для галереи изображений)

Голова курит, я пробовал несколько решений, получая подкаталоги в массиве, как

$myDir = '/images/'; //
foreach ( $myDirArray = array_filter(glob($myDir . '*'), 'is_dir') as $DirName ) {
etc..

Я использую php-скрипт для извлечения больших изображений из определенной папки, извлечения их большого пальца из папки «thumbs». Скрипт автоматически генерирует большой палец, если он не существует (функция make_thumb)
Работает как шарм для одной папки с изображениями, но вам нужна ваша помощь для общего решения на PHP, для сканирования родительских каталогов и папок внутри и сохранения функции make_thumb

Мой код:
Установите каталог изображения / большого пальца

    $images_dir = 'Nature/';
$thumbs_dir = 'Nature/thumbs/';
$thumbs_size = 120;

Получить расширение файла:

function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}

Получить файлы

    function get_files($images_dir,$exts = array('jpg')) {
$files = array();
if($handle = opendir($images_dir)) {
while(false !== ($file = readdir($handle))) {
$extension = strtolower(get_file_extension($file));
if($extension && in_array($extension,$exts)) {
$files[] = $file;
}
}
closedir($handle);
}
return $files;
}

Создать галерею (и извлечь подписи для дальнейшего использования)

    $image_files = get_files($images_dir);
if(count($image_files)) {
$index = 0;
foreach($image_files as $index=>$file) {
$index++;
$thumbnail_image = $thumbs_dir.$file;
$filename = $file;
$caption = preg_replace(array('/^.+--/', '/\.(jpg|jpeg|gif|png|bmp)$/', '/_/'), array('','',' '), $filename); //Extracting the caption
if(!file_exists($thumbnail_image)) {
$extension = get_file_extension($thumbnail_image);
if($extension) {
make_thumb($images_dir.$file,$thumbnail_image,$thumbs_size);
}
}
echo '<a href="',$images_dir.$file,'" title="',$caption,'"><img src="',$thumbnail_image,'" /></a>';
}
}
else {
echo '<p>There are no images in this gallery.</p>';
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]