вывод картинок

Как вывести список картинок в папке на РНР

Рассмотрим Как вывести список картинок в папке на РНР и только тех картинок, ширина которых меньше 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);
}

Если вы заказываете себе ссылки, то данная функция очень поможет вам собрать ссылки на картинки.

Если вы сами затрудняетесь в установке кода или вам нужна какая нибудь помощь – вы можете нанять меня совсем недорого. Обсуждаем в комментариях.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.

Я spam бот