Рандомный background

Плюсануть
Поделиться
Класснуть

Рандомный background

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

Начал гуглить скрипты под это дело. В большинстве своём многие пытаются городить решение на JavaScript, либо ставить плагин для WordPress, но мне случайно встретился простой способ как реализовать нужное мне на PHP, без JavaScript (это полезно, ибо не у всех он включен).

Итак, берём код ниже и сохраняем его в файл rand.php:

<?php
$folder = '.';
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$img = null;

if (substr($folder,-1) != '/') {
  $folder = $folder.'/';
}

if (isset($_GET['img'])) {
  $imageInfo = pathinfo($_GET['img']);
  if (
      isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
        file_exists( $folder.$imageInfo['basename'] )
    ) {
    $img = $folder.$imageInfo['basename'];
  }
} else {
  $fileList = array();
  $handle = opendir($folder);
  while ( false !== ( $file = readdir($handle) ) ) {
    $file_info = pathinfo($file);
    if (
        isset( $extList[ strtolower( $file_info['extension'] ) ] )
    ) {
      $fileList[] = $file;
    }
  }
  closedir($handle);

  if (count($fileList) > 0) {
    $imageNumber = time() % count($fileList);
    $img = $folder.$fileList[$imageNumber];
  }
}

if ($img!=null) {
  $imageInfo = pathinfo($img);
  $contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
  header ($contentType);
  readfile($img);
} else {
  if ( function_exists('imagecreate') ) {
    header ("Content-type: image/png");
    $im = @imagecreate (100, 100)
        or die ("Cannot initialize new GD image stream");
    $background_color = imagecolorallocate ($im, 255, 255, 255);
    $text_color = imagecolorallocate ($im, 0,0,0);
    imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
    imagepng ($im);
    imagedestroy($im);
  }
}
?>

Кидаем получившийся файл в папку, в которую также нужно сложить все картинки, которые будут служить фоном.

После этого в css достаточно прописать путь к скрипту как к картинке для фона. К примеру на сайте, который использовал как пример, вот такой стиль:

html {
  background: url("background/r.php") no-repeat center center fixed #ffffff;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

Замечено, что в браузерах с жёстким кешированием (как Safari) фон не меняется, но тут уже проблема как раз в кеше. Если воспользоваться JavaScript, то этой проблемы можно избежать.

Кстати, вы в курсе, что поисковая система Спутник от Ростелекома уже работает? Вот:

Спутник

Медвед явно рад.

Нужна карта видеозахвата? Тогда вам на сайт secur.ua.

(Visited 678 times, 1 visits today)
Последнее изменение записи: 28.12.2015 | Рубрика: Работа | Метки:
Плюсануть
Поделиться
Класснуть