Показать сообщение отдельно

  #160  
Старый 13.08.2007, 03:15
FeraS
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме:
5381835

Репутация: 1329


По умолчанию

Выводим картинку из заданной директории
Думаю будет полезно админам сайтов с обоями

Чтобы отобразить случайную картинку надо сначала просмотреть все файлы в директории, определить какие из них являются картинками, записать в массив и выбрать уже из этого массива случайное изображение. Вроде все просто

Код:
PHP код:
<?php
function randImage($img_dir 'rand_images')
{
    static 
$images = array();
    static 
$calls  0;
    if (empty(
$images) && $calls == 0) {
        foreach (
glob($img_dir.'/{*.jpg, *.png, *.gif}'GLOB_BRACE) as $filename) {
            
$images[$filename] = getimagesize($filename);
        }
        ++
$calls;
    }
    if (!empty(
$images)) {
        
$key array_rand($images);
        
$ret = array('name' => $key'width' => $images[$key][0], 'height' => $images[$key][1]);
        unset(
$images[$key]);
        return 
$ret;
    } else {
        return 
null;
    }
}
  
var_dump(randImage('./images'));
?>
Код работает так: сначала читаем в статичную переменную файлы, подходящие по маске и в статичную же переменную кладем признак того, что функция вызывалась ранее.
Дальше смотрим нашлись ли подходящие файлы и если нашлись, то возвращаем случайный элемент из массива. Затем этот же элемент из массива удаляем, чтоб при повторном вызове функции не отображать уже показанные картинки.
Если массив пустой, возвращается значение NULL.
 
Ответить с цитированием