Я пытаюсь изменить фоновое изображение 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>