PHP отображает разные изображения в разное время на html-странице

#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';
 

это ваш код