#php #html
Вопрос:
Привет, у меня есть этот PHP-код, который, как я ожидаю, должен работать, однако в настоящее время он показывает пустую страницу.
Как я могу заставить это работать на моем HTML-сайте? Как и когда я смотрю на php-файл на локальном хосте, он не выдает ничего просто пустого. Я хочу этого для того, чтобы в разное время дня появлялись разные изображения, это для радиопередачи. Но я, кажется, не могу заставить его работать должным образом.
<?php
$h = date('G'); //set variable $h to the hour of the day
$d = date('w'); //set variable $d to the day of the week.
$year = date('Y'); //set variable $year to the current year
//G is the date key for hours in 24 format (not 12), with no leading 0s, like 02.
// Adjust 2 hour offset for MST below.
$h = $h-2;
// MONDAY SCHEDULE
if ($d == 1 amp;amp; $h >= 12 amp;amp; $h < 14) $img = 'img/hosts/test2.jpg';
else if ($d == 1 amp;amp; $h >= 14 amp;amp; $h < 16) $img = 'img/hosts/test2.jpg';
else if ($d == 1 amp;amp; $h >=16 amp;amp; $h < 18) $img = 'img/hosts/test2.jpg';
else if ($d == 1 amp;amp; $h >= 18 amp;amp; $h < 20) $img = 'img/hosts/test2.jpg';
else if ($d == 1 amp;amp; $h >= 20 amp;amp; $h < 22) $img = 'img/hosts/test2.jpg';
else if ($d == 1 amp;amp; $h >= 22 amp;amp; $h < 24) $img = 'img/hosts/test2.jpg';
else if ($d == 1 amp;amp; $h >= 19) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h < 0) $img = 'img/hosts/test2.jpg';
// TUESDAY SCHEDULE
if ($d == 2 amp;amp; $h >= 12 amp;amp; $h < 14) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h >= 14 amp;amp; $h < 16) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h >=16 amp;amp; $h < 18) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h >= 18 amp;amp; $h < 20) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h >= 20 amp;amp; $h < 22) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h >= 22 amp;amp; $h < 24) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h >= 19) $img = 'img/hosts/test2.jpg';
else if ($d == 2 amp;amp; $h < 0) $img = 'img/hosts/test2.jpg';
// WEDNESDAY SCHEDULE
if ($d == 3 amp;amp; $h >= 12 amp;amp; $h < 14) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h >= 14 amp;amp; $h < 16) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h >=16 amp;amp; $h < 18) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h >= 18 amp;amp; $h < 20) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h >= 20 amp;amp; $h < 22) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h >= 22 amp;amp; $h < 24) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h >= 19) $img = 'img/hosts/test2.jpg';
else if ($d == 3 amp;amp; $h < 0) $img = 'img/hosts/test2.jpg';
// THURSDAY SCHEDULE
if ($d == 4 amp;amp; $h >= 12 amp;amp; $h < 14) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h >= 14 amp;amp; $h < 16) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h >=16 amp;amp; $h < 18) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h >= 18 amp;amp; $h < 20) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h >= 20 amp;amp; $h < 22) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h >= 22 amp;amp; $h < 24) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h >= 19) $img = 'img/hosts/test2.jpg';
else if ($d == 4 amp;amp; $h < 0) $img = 'img/hosts/test2.jpg';
// FRIDAY SCHEDULE
if ($d == 5 amp;amp; $h >= 12 amp;amp; $h < 14) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h >= 14 amp;amp; $h < 16) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h >=16 amp;amp; $h < 18) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h >= 18 amp;amp; $h < 20) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h >= 20 amp;amp; $h < 22) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h >= 22 amp;amp; $h < 24) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h >= 19) $img = 'img/hosts/test2.jpg';
else if ($d == 5 amp;amp; $h < 0) $img = 'img/hosts/test2.jpg';
Комментарии:
1. Пустая страница часто означает ошибку PHP, я бы включил отчеты об ошибках и/или проверил журналы. Всякий раз, когда у вас есть
if
заявление, у вас всегда должно быть или, по крайней мере , тестовое заключениеelse
, которого я не вижу.2. Ничего в журнале, что я мог бы увидеть? И есть ли какие-либо ошибки в коде?
3. @mplungjan извините, я не совсем понимаю, что вы имеете в виду?
4. Я скопировал ваш код, однако теперь у меня ошибка с изображением, и я не уверен, почему она появляется?
5. Извините @mplungjan, если я веду себя глупо, вы хотите сказать, что мне нужно повторять каждый из них в коде для каждого набора часов?
Ответ №1:
- у вас нет изображения по умолчанию
- вы не передаете изображение на страницу в конце страницы
- ваши расписания одинаковы для каждого дня, и вы устанавливаете одно и то же изображение для каждого времени
Я бы ожидал этого:
http://sandbox.onlinephpfunctions.com/code/556ecb6463298fcfa82f93372a000b9738d911d9
<?php
$h = date('G'); //set variable $h to the hour of the day
$d = date('w'); //set variable $d to the day of the week.
$year = date('Y'); //set variable $year to the current year
//G is the date key for hours in 24 format (not 12), with no leading 0s, like 02.
// Adjust 2 hour offset for MST below.
$h = $h-2;
$img="img/hosts/off_air.jpg"; // default
if ($h >= 12 amp;amp; $h < 14) $img = "img/hosts/test$d_12to14.jpg";
else if ($h >= 14 amp;amp; $h < 16) $img = "img/hosts/test$d_144to16.jpg";
else if ($h >=16 amp;amp; $h < 18) $img = "img/hosts/test$d_16to18.jpg";
else if ($h >= 18 amp;amp; $h < 20) $img = "img/hosts/test$d_18to20.jpg";
else if ($h >= 20 amp;amp; $h < 22) $img = "img/hosts/test$d_20to22.jpg";
else if ($h >= 22 amp;amp; $h < 24) $img = "img/hosts/test$d_22to24.jpg";
//else if ($h >= 19) $img = 'img/hosts/test2.jpg'; // already handled
else if ($h < 12) $img = 'img/hosts/test$d_morning.jpg';
echo "<img src="$img" />";
?>
Теперь у вас могут быть такие изображения, как
test1_12to14.jpg
в понедельник с 12 до 14 и test3_22to24.jpg
в среду с 22 до 24
Комментарии:
1. Хорошо, я сделал это, однако автономный режим не появляется или новые изображения?
2. Вам, конечно, нужно переименовать мои изображения или ваши. Автономный режим больше не отображается, потому что я изменил последнюю запись на
if ($h < 12)
3. Я, конечно, переименовал его. Я просто изменил изображения, и, похоже, это работает. Мне просто нужно убедиться, что он меняется в течение часа. И, о да, хорошо, значит, нам нужно использовать его в качестве автономного?
4. И как мне тогда сделать так, чтобы он отображался на моей html-странице в том виде, в каком этот PHP-код находится djtimes.php файл
5. Я понятия не имею, что djtimes.php это … может быть, какое-то
include
заявление?
Ответ №2:
вы не объявляли область действия или условие в течение часа менее 12, ваше первое условие должно быть
if ($d == day_number amp;amp; $h < 12) $img = 'img/hosts/test2.jpg';