Изменение фонового изображения в зависимости от дня недели

Я пытаюсь изменить фоновое изображение div в зависимости от дня недели. Изображения находятся в папке с именем «img». У меня есть следующий код;

HTML

<?php $images_by_day = array('monday.jpg', 'tuesday.jpg', 'wednesday.jpg', ...); $image_for_today = $images_by_day[date('w')]; ?> <div class="jumbotron indx-BG"> //content </div> 

css (внешняя таблица стилей)

 .indx-BG { background: url('../img/<?php echo $image_for_today ?>.jpg') no-repeat center center; } 

Лучше вы определяете семь разных классов с различными фоновыми изображениями в файле css, а затем применяете эти классы внутри элементов, используя php-файл.

Подобно:

 <div class="container <?php echo date('l')?>-bg" id="indx-jumbo"> //content </div> 

И в вашем файле css вы определяете классы css, например:

 .monday-bg { background: url('../img/image_for_monday.jpg') no-repeat center center; } .tuesday-bg { background: url('../img/image_for_tuesday.jpg') no-repeat center center; } . . . .sunday-bg { background: url('../img/image_for_sunday.jpg') no-repeat center center; } 

Вы не должны использовать PHP в файле CSS. Способ решения этой проблемы заключается в добавлении встроенного фонового изображения, что-то вроде этого:

 <div class="container" id="indx-jumbo" style="background-image: url('../img/<?php echo $image_for_today ?>.jpg')"> //content </div> 

Вы не можете использовать PHP в файле css. Вы можете добавить background image строку. Пожалуйста, проверьте следующий код.

 <div class="container" id="indx-jumbo" style="background-image: url('../img/<?php echo date( "l", $timestamp); ?>.jpg')"> //content </div> 
 <?php $images_by_day = array('sunday.jpg','monday.jpg', 'tuesday.jpg', 'wednesday.jpg','thursday.jpg','friday.jpg','saturday.jpg'); $image_for_today = $images_by_day[date('w')]; ?> <div class="container" id="indx-jumbo" style=" background: url('../img/<?php echo $image_for_today ?>') no-repeat center center;"> //Content </div> 

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

 <?php foreach($imagArray as $image) { if(strpos($image,date('l')) { //display image and exit } } ?> 

Попытайтесь это сделать.

 <?php $images_by_day = array('monday.jpg', 'tuesday.jpg', 'wednesday.jpg', 'thursday.jpg','friday.jpg','saturday.jpg','sunday.jpg'); $today = date('l'); foreach ($images_by_day as $key => $value) { $day = substr($value,0,-4); $str = strcasecmp($day, $today); if($str == '0'){ $background = $value; } } ?> <div class="container" id="indx-jumbo" style="background-image: url('../img/<?= $background; ?>');"> //content </div>