Как случайно вывести фотографию на ПХП

Некая случайная фотография из альбома на монитор.
Что именно может понадобиться для этого?!
К примеру, на главной странице сайта для рекламы могут появиться несколько рекламных баннеров. Например, один из них может быть посвящен рекламной компании. При желании можно поменять картинку на странице. Представлю функцию и объясню как она действует.
Вариант 1
В качестве альбома предполагается папка с хранящимися там фотографиями, картинками или рисунками.
Снимок случайного вывода картинки. Скопируйте файл index.php.
<?php
function rand_foto($patch = ".")
{
//$patch - путь к каталогу.
// Пример: (https:??codeg.ru/images/Avatar1/)
// или относительный путь: (images/Avatar1/)
// По умолчанию функция будет обрабатывать текущий каталог
//Открываем каталог
if(!$dir = opendir($patch)) return "Это не директория";
// Читаем содержимое каталога
while(($t = readdir($dir)) !== false)
{
$ext = substr(strrchr($t,'.'), 1);
if(is_file($t) && ($ext == "gif") || ($ext == "jpg") || ($ext == "png"))
{
$filename[] = $patch."/".$t;
}
}
// Закрываем каталог
closedir($dir);
// Получаем случайный индекс из массива
$index = rand(0, count($filename) - 1);
// Выводим случайный файл
$foto = "<img src=".$filename[$index].">";
return $foto; // функция возвращает случайное фото
}
// Вызываем функцию
echo rand_foto();
?>
Вариант 2
Здесь представлено изменение функции, в которой добавили еще один аргумент для управления свойством width тегов изображения. Он определяет ширину картинки и его размер. Этот процесс будет меняться пропорционально, поэтому картинка будет изменять свой размер в соответствии с размером. Высота автоматически подойдёт под нормальный размер для этой ширины. Хотелось бы сказать о том, что картинки легче и лучше обрабатывать перед загрузкой на сервер. Менять их размер, яркость, контраст и цветовую гамму.
Скорее всего, это будет специальное место для показа картинок. Поэтому они должны быть одинаковыми в пропорциях при смене одного изображения на другое, чтобы не происходило видимых перепадов ширины или высоты картинки от другой, что повлияет и отображание всей web-страницы. Мне кажется, что это выглядит как-то не очень.
Но как бы то ни было, я не знаю других причин изменения размеров изображения в самом функционале. Это был второй вариант, который был более гибким. Который автоматически был выбран для ширины в 100px. Укажите второй аргумент функции (т.е ширину) и по умолчанию все картинки будут выводиться в 100px ширины.
С помощью листинга No array можно вывести случайную картинку, с заданной шириной и высотой.
<?php
function rand_foto($patch = ".", $w ="100")
{
//$patch - путь к каталогу.
// Пример: (https:??codeg.ru/images/Avatar1/)
// или относительный путь: (images/Avatar1/)
// По умолчанию функция будет обрабатывать текущий каталог
//Открываем каталог
if(!$dir = opendir($patch)) return "Это не директория";
// Читаем содержимое каталога
while(($t = readdir($dir)) !== false)
{
$ext = substr(strrchr($t,'.'), 1);
if(is_file($t) && ($ext == "gif") || ($ext == "jpg") || ($ext == "png"))
{
$filename[] = $patch."/".$t;
}
}
// Закрываем каталог
closedir($dir);
// Получаем случайный индекс из массива
$index = rand(0, count($filename) - 1);
// Выводим случайный файл
$foto = '<img src="'.$filename[$index].'" width="'.$w.'">';
return $foto; // функция возвращает случайное фото
}
// Вызываем функцию
echo rand_foto("../img",300);
?>
Комментариев 0