2012-05-22 4 views
0

Я новичок в php, и я создаю галерею изображений. код, который я написал, работает, и он работает хорошо, но мне нужно загрузить файлы на сервер. галерея работает, загружая уменьшенное изображение на страницу, и когда щелчок эскиза щелкнул, появится всплывающее окно fancybox и отобразит версию эскиза с высоким разрешением.Сравнение 2 наборов файловых массивов с eachother

есть 2 изображения в структуре папок. фотографии живут в/gfx/photos и thumbnails live in/gfx/photos/thumbs. Я пытаюсь написать PHP-скрипт, который проверяет, добавлены ли новые фотографии в папку/gfx/photos/и автоматически создает миниатюру в папке/gfx/photos/thumbs. Я могу сделать часть изменения размера, но мне нужна помощь, сравнивая 2 файла друг с другом. миниатюры и фотографии имеют точно такое же название, что они просто живут в разных местах.

У меня есть массив изображений, который работает следующим образом:

<?PHP 
    $dir = "gfx/photos/thumbs"; 
    $files = scandir($dir); 

    foreach ($files as $key => $value); 
    $result = count($files); 
    for ($i = 0; $i < $result; $i++) { 
     /* loads appropriate code for every file... */ 
    } 

?> 

может этот код будет использоваться для проверки файлов друг против друга, или я должен использовать другой код.

Спасибо вам за помощь!

ответ

0

Вот простой способ получить этот результат и будет отлично работать, пока каталог не заполняет миллионы изображений, хотя если вы можете иметь миллионы изображений, вы должны, вероятно, разбить их на более мелкие каталоги ,

Поскольку scandir возвращает обратно целочисленный индексированный массив, вам, как правило, придется выполнять поиск массива, чтобы найти ваше изображение. Однако. Если вы сделаете это, используя array_flip:

$image_name = "some_image.jpg"; 

$dir = "gfx/photos/thumbs"; 
$files = scandir($dir); 

$files = array_flip($files); // makes the values = to keys and keys = values 

// now you have an 0(1) look up table that you can simply check if the key exists 
// which, now that we flipped the array, are the file names 
if(!isset($files[$image_name])){ 
    // create the thumbnail etc 
} 
Смежные вопросы