Хотите создать сайт, который автоматически отображает разные фоновые изображения для каждого дня года - PullRequest
1 голос
/ 20 марта 2011

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

Не уверен, может ли это быть одна страница, которая вытягивает правильное фоновое изображение для каждой даты, или мне нужно перенаправлять на другую страницу в целом для каждого дня?

Может кто-нибудь помочь?

Ответы [ 5 ]

3 голосов
/ 20 марта 2011

Вы можете сделать что-то подобное в php:

$backgrounds = array(
  'bg0.jpg',
  'bg1.jpg',
  'bg2.jpg',
  // ...
  'bg365.jpg');

$todaysBackground = strtotime('today') % count($backgrounds);

А затем в CSS:

body {
  background-image: url('images/<?php echo $todaysBackground; ?>');
}

Тогда вы будете менять свой фон в цикле.

Другойвариант, если у вас есть изображения для всех дней в году:

$today = (int)date('z');

$todaysBackground = $today . '.jpg';
2 голосов
/ 20 марта 2011

Вы можете использовать массив для определения изображений для соответствующих дат. Еще лучше, если у вас есть 365 изображений, имена которых соответствуют формату вывода строки на date(), вам даже не понадобится массив. Вы можете просто сделать (для метода, использующего JavaScript):
body.style.backgroundImage="" + date([parameters]) + ".png";
(Я верю, что это правильный синтаксис; это было давно)
Посмотри работает ли. И, кстати, вам не нужно указывать всю строку даты в качестве имени изображения - только то, что вам нужно. Я понимаю, что последний действительно предлагает неудобства, если они еще не названы в формате строки даты.
Для метода, использующего PHP, можно использовать простой echo($date([params]).".jpg");.

1 голос
/ 20 марта 2011

Вы можете использовать встроенную таблицу стилей в заголовке вашей страницы, чтобы сделать это довольно легко. Поместите все свои изображения в папку (я назвал ее dailybackgrounds, но вы можете использовать любое имя) с именами файлов 0.png - 365.png (функция PHP date () возвращает день года как 0 для первого , 1 для второго и т. Д.).

<style type="text/css">
body {
    background-image: url("/images/dailybackgrounds/<?php echo (date('z'));?>.png");
}
</style>

Обратите внимание, это должно быть единственное, что вы вставляете в строку. Поместите остальную часть вашего стиля во внешний CSS-файл, как обычно.

1 голос
/ 20 марта 2011

Ваш лучший выбор для CSS:

body {
  background-image: url('images/get_todays_background.php');
}

Это загрузит скрипт и все, что выводится в браузер из него как ваше изображение.

В скрипте get_todays_background.php:

<?php
  $now = date('Y-m-d');
  header('Content-Type: image/jpeg');
  readfile('/folder_of_backgrounds/'.$now.'.jpg');
?>

Это выведет изображение как файл изображения в сценарии. Тогда вы просто поместите картинку в папку на каждый день в формате 2011-03-21. Это приравнивается к 21 марта 2011 года. Магия. Обязательно установите изображение по умолчанию и выполните некоторую проверку ошибок, чтобы увидеть, существует ли текущее изображение первым (подсказка, file_exists ()).

0 голосов
/ 20 марта 2011

Другим решением было бы использовать PHP, чтобы дать элементу <body> класс, а затем использовать CSS, чтобы определить все ваши стили фона.Преимущество этого состоит в том, что вы можете затем определять другие стили, которые происходят в определенные дни года.

Например:

<body class="day-<?= date('z') ?> month-<?= date('m') ?>">

Тогда у вас могут быть стили CSS, такие как:

body.day-1 {
    background: url('happy-new-year.jpg');
}

body.month-12 {
    background: url('merry-christmas.jpg');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...