Рассмотрим Как вывести список картинок в папке на РНР и только тех картинок, ширина которых меньше 500 пикселей.
Для решения этой посталенной мне задачи был прочесан интернет. Проверены некоторые готовые куски кода, которые оказались нерабочими. В процессе был выведен рабочий код.
Особенностью работы скрипта является также то, что он ищет все подпапки указанной папки, что полезно для владельцев сайтов и блогов, которые складывают картинки по годам, месяцам. Например годы 2013, 2014, 2015, 2016, 2017, 2018, 2019 и месяца 01, 02, 03, 04, 05, …. 10, 11, 12.
РНР код
// Return an array with the list of sub directories of $dir
function getSubDirectories($dir) {
$subDir = array();
// Get and add directories of $dir
$directories = array_filter(glob($dir), 'is_dir');
$subDir = array_merge($subDir, $directories);
// Foreach directory, recursively get and add sub directories
foreach ($directories as $directory)
$subDir = array_merge($subDir, getSubDirectories($directory . '/*'));
// Return list of sub directories
return $subDir;
}
function echoImagesUrls($directory) {
$allowed_types = array("jpg", "png", "jpeg"); //разрешеные типы изображений
$file_parts = array();
$ext = "";
$title = "";
$i = 0;
//пробуем открыть папку
$dir_handle = @opendir($directory) or die("Ошибка при открытии папки !!!");
while ($file = readdir($dir_handle)) { //поиск по файлам
if ($file == "." || $file == "..")
continue; //пропустить ссылки на другие папки
$file_parts = explode(".", $file); //разделить имя файла и поместить его в массив
$ext = strtolower(array_pop($file_parts)); //последний элеменет - это расширение
if (in_array($ext, $allowed_types)) {
$tempSizes = getimagesize("$directory/$file");
$width = $tempSizes[0];
//
if ($width <= 500){
$tempEcho = "<div> https://salomoon.pp.ua$directory/$file </div>";
echo str_replace('./images/', '/images/', $tempEcho);
}
$i++;
}
}
closedir($dir_handle); //закрыть папку
}
$manyDirs = getSubDirectories("./images");
foreach ($manyDirs as $oneDir){
echoImagesUrls($oneDir);
}
Если вы заказываете себе ссылки, то данная функция очень поможет вам собрать ссылки на картинки.
Если вы сами затрудняетесь в установке кода или вам нужна какая нибудь помощь – вы можете нанять меня совсем недорого. Обсуждаем в комментариях.