HTML — PHP / CSS случайный фон

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

PHP (до Doctype в index.php):

<?php
$bg = array('back1.jpg', 'back2.jpg' ); // array of filenames
$i = rand(0, count($bg)-1); // generate random number size of the array
$selectedBg = "$bg[$i]"; // set variable equal to which random filename was chosen
?>

CSS:

body {
height: 100%;
margin: 0;
color: #474747;
font: 13px/23px  'Exo 2', sans-serif;
min-width: 1186px;
background: url( ../img/<?php echo $selectedBg; ?>) no-repeat 50% 50%;
background-size: cover;
background-attachment: fixed;
}

Проблема в том, что фон не установлен ни на одно из изображений!

РЕДАКТИРОВАТЬ:

Я перешел к полному PHP-методу, хотя он содержит ошибки:

Line : 5,   Error type : 4
Message : syntax error, unexpected '(', expecting variable (T_VARIABLE) or '$'

Код:

<?php
$bg = array('back1.jpg', 'back2.jpg' ); // array of filenames
$i = rand(0, count($bg)-1); // generate random number size of the array
$selectedBg = "$bg[$i]"; // set variable equal to which random filename was   chosen
$('body').css( {                        'background-image': 'url( img / ' +     echo $selectedBg + ')'            } );
?>

3

Решение

Ваш файл CSS должен иметь что-то вроде этого

.one {
background: url(../img/back1.jpg);
}

.two {
background: url(../img/back2.jpg);
}

.three {
background: url(../img/back3.jpg);
}

И ваш HTML должен иметь

<body class="<? echo $img ?>">

И тогда ваш PHP нужно только определить $img как либо one two или же three

<?
$list = array('one', 'two', 'three' );
$i = array_rand($list);
$img = $list[$i];
?>
1

Другие решения

То, что вы ищете, будет

array_rand();

Руководство по PHP: http://php.net/manual/en/function.array-rand.php

для вашего PHP:

<?php
$bg = array('back1.jpg', 'back2.jpg' ); // array of filenames
$i = array_rand($bg); // generate random number size of the array
$selectedBg = $bg[$i]; // set variable equal to which random filename was chosen
?>
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector