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




Некая случайная фотография из альбома на монитор.
Что именно может понадобиться для этого?!
К примеру, на главной странице сайта для рекламы могут появиться несколько рекламных баннеров. Например, один из них может быть посвящен рекламной компании. При желании можно поменять картинку на странице. Представлю функцию и объясню как она действует.

Вариант 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);

?>
скачать dle 12.0

Поделиться

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своей новости.

Кликните на изображение чтобы обновить код, если он неразборчив

Комментариев 0

Нажимая «Подтвердить», вы даете согласие на обработку файлов cookie