Офис НП AMWAY в Ярославле
Купить продукцию Амвей в Ярославле, офис Amway
На карте Купить AMWAY: офис в ЯрославлеКонсультации, презентации, мастер–классы, знакомство с продукцией, заказ и выдача купленного товара:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » PHP: Вывод изображений из папки (директории)
Сниппет
При создании одного из плагинов понадобилось мне показать все изображения из указанной папки (директории). Признаться, раньше я не работал с подобным, но все новое всегда вызывает азарт. Поэтому, чуть погуглив и покурив мануалы, я набросал несколько строк кода, коими и поделюсь с вами.
PHP: Вывод изображений из папки (директории)
Опубликовал  Pisatel Добавлено  06-04-2015 15:36 06 Апрель 2015 15:36:11 14640  Прочтений 14640 Прочтений  22 Комментариев 22 Комментариев
Обновлено: 06-04-2015 16:00 Обновлено: 06 апреля 2015 16:00:17  printer
В данной статье приведу небольшой скрипт, который ищет изображения в указанной папке (директории) и выводит их. Для начала — вывод всех изображений из папки (как всегда- комментарии прямо в коде):

Код: PHP


$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
    $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
    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
    $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++;

}




Если кто–то сможет сделать это более изящно — милости прошу. Я лично всегда стараюсь использовать для работы с массивами функции, которые специально предназначены для работы с ними и не изобретать велосипедов.

На этом, в общем, и закончу. Удачи в кодинге и процветания твоему проекту!
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:   
Комментарии
#21 | rllyunjnsx 29 ноября 2019 15:09:27
No Avatar
Гость
cialis online <a href="http://sildenafilfas.com/">viagra sildenafil</a> cialis coupon
#22 | igkfaxlntt 29 ноября 2019 17:34:26
No Avatar
Гость
cialis without a prescription <a href="http://generzoloft.com/">generic for zoloft</a> cialis for women
Добавить комментарий
Имя:

Проверочный код:
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
13811 33 promask
27. апреля 2019
folder Вопрос по переделке bb-кода
PHP, MySQL
3493 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
14798 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
7989 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
7629 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
54602 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
4209 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
8397 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
9707 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
3198 0 Pisatel
15. июня 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
6312 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
8107 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
43281 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
3847 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
14154 13 Pisatel
03. апреля 2015