Офис НП AMWAY в Ярославле

→ На карте Купить AMWAY: офис в ЯрославлеКонсультации, презентации, мастер–классы, знакомство с продукцией, заказ и выдача купленного товара:
●Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
●Телефон: +7 (920) 112-00-91
●Email: matyxho@mail.ru
●Сайт: https://www.amway.ru/user/lebedem
●Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » PHP: Вывод изображений из папки (директории)
Сниппет
При создании одного из плагинов понадобилось мне показать все изображения из указанной папки (директории). Признаться, раньше я не работал с подобным, но все новое всегда вызывает азарт. Поэтому, чуть погуглив и покурив мануалы, я набросал несколько строк кода, коими и поделюсь с вами.
PHP: Вывод изображений из папки (директории)
В данной статье приведу небольшой скрипт, который ищет изображения в указанной папке (директории) и выводит их. Для начала — вывод всех изображений из папки (как всегда- комментарии прямо в коде):
Однако, задачи бывают разные. Попробую привести несколько примеров. Например, нам необходимо вывести не все изображения, а только первые 10. Для этого нужно будет лишь задать дополнительное условие при проходе по массиву. Итак, код с комментариями:
Следующий пример — выберем, например, каждое второе изображение:
Ну и на закуску — выберем 5 случайных (рандомных) изображений из папки (каталога). Для этого я воспользуюсь php–функцией array_rand();, и код придется чуть усложнить, увеличив буквально на пару строк:
Если кто–то сможет сделать это более изящно — милости прошу. Я лично всегда стараюсь использовать для работы с массивами функции, которые специально предназначены для работы с ними и не изобретать велосипедов.
На этом, в общем, и закончу. Удачи в кодинге и процветания твоему проекту!
Код: PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $wimage = "" ; $fimg = "" ; $path = "images/" ; // задаем путь до сканируемой папки с изображениями $images = scandir( $path ); // сканируем папку if ( $images ! = = false ) { // если нет ошибок при сканировании $images = preg_grep( "/\.(?:png|gif|jpe?g)$/i" , $images ); // через регулярку создаем массив только изображений if ( is_array ( $images )) { // если изображения найдены foreach ( $images as $image ) { // делаем проход по массиву $fimg . = "<img src='" . $path . htmlspecialchars (urlencode( $image )). "' alt='" . $image . "' />" ; } $wimage . = $fimg ; } else { // иначе, если нет изображений $wimage . = "<div style='text-align:center'>Не обнаружено изображений в директории!</div>\n" ; } } else { // иначе, если директория пуста или произошла ошибка $wimage . = "<div style='text-align:center'>Директория пуста или произошла ошибка при сканировании.</div>" ; } echo $wimage ; // выводим полученный результат |
Однако, задачи бывают разные. Попробую привести несколько примеров. Например, нам необходимо вывести не все изображения, а только первые 10. Для этого нужно будет лишь задать дополнительное условие при проходе по массиву. Итак, код с комментариями:
Код: PHP
1 2 3 4 5 6 | $stop = 9; // на 1 меньше, так как ключи в массиве начинаются с 0, то есть // 0, 1, 2..., значит первые 10 значений закончатся на ключе 9 foreach ( $images as $key => $image ) { // делаем проход по массиву, выбирая ключ => значение $fimg . = "<img src='" . $path . htmlspecialchars (urlencode( $image )). "' alt='" . $image . "' />" ; if ( $stop = = $key ) break ; // останавливаем проход по массиву, когда 9==9 } |
Следующий пример — выберем, например, каждое второе изображение:
Код: PHP
1 2 3 4 5 6 7 | foreach ( $images as $key => $image ) { // делаем проход по массиву, выбирая ключ => значение if ( $key % 2 = = 0) { // если целочисленный остаток от деления ключа на 2 равен 0 $fimg . = "<img src='" . $path . htmlspecialchars (urlencode( $image )). "' alt='" . $image . "' />" ; } else { // иначе continue ; // пропускаем изображение } } |
Ну и на закуску — выберем 5 случайных (рандомных) изображений из папки (каталога). Для этого я воспользуюсь php–функцией array_rand();, и код придется чуть усложнить, увеличив буквально на пару строк:
Код: PHP
1 2 3 4 5 6 7 8 9 10 11 | $arand = array_rand ( $images , 5); // получили массив 5 случайных ключей (ключ массива => ключ изображения) $i = 0; foreach ( $images as $key => $image ) { // проход по массиву if ( $arand [ $i ] = = $key ) { // если значение случайного ключа равно текущему ключу- выводим изображение $fimg . = "<img src='" . $path . htmlspecialchars (urlencode( $image )). "' alt='" . $image . "' />" ; } else { // иначе continue ; // пропускаем } $i + + ; } |
Если кто–то сможет сделать это более изящно — милости прошу. Я лично всегда стараюсь использовать для работы с массивами функции, которые специально предназначены для работы с ними и не изобретать велосипедов.
На этом, в общем, и закончу. Удачи в кодинге и процветания твоему проекту!
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:
Последние активные темы форума
Темы | Просмотров | Ответов | Последние сообщения |