Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.03.2025
Сообщений: 24

PHP скрипт выводит программу по дням недели. Нужно переписать под php 7 и убрать ( Начало: 16.12.2025 17:20:00 ) в концах строк

23.12.2025, 19:15. Показов 772. Ответов 12
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
$xml = simplexml_load_file("xmltv.xml");
 
$byWeeks = array();
 
function strToTs($s){
    return mktime(
        substr($s,8,2),
        substr($s,10,2),
        substr($s,12,2),
        substr($s,4,2),
        substr($s,6,2),
        substr($s,0,4)
    );
}
 
foreach($xml->xpath( 'programme[@channel="1968"]' ) as $item) {
 
    $startTimestamp = strToTs($item["start"]);
    $endTimestamp = strToTs($item["stop"]);
 
    $startTime = date("H:i", $startTimestamp);
 
    $dayOfWeek = date('N', $startTimestamp);
 
    $byWeeks[$dayOfWeek][$startTime] = ['start_time' => date('d.m.Y H:i:s', $startTimestamp), 'start_timestamp' =>  $startTimestamp, 'end_timestamp' =>  $endTimestamp, 'title' => '' . $item->title];
    ksort($byWeeks[$dayOfWeek]);
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>TV Program</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/vue@3.2.31/dist/vue.global.min.js"></script>
    <style>
        .past-pr {
            opacity: 0.5;
            color: grey;
        }
        .current-pr {
            color: black;
            opacity: 1;
            font-weight: bolder;
        }
    </style>
</head>
<body>
<div id="app" class="container mt-4">
    <ul class="nav nav-tabs">
        <li class="nav-item" v-for="(day, index) in days" :key="index">
            <a class="nav-link" :class="{active: activeDay === index}"
               @click="activeDay = index" style="cursor: pointer;">
                {{ dayNames[day] }}
            </a>
        </li>
    </ul>
    <div class="tab-content p-3 border border-top-0 rounded-bottom">
        <div v-for="(day, index) in days" :key="index" v-show="activeDay === index">
            <div
                :class="{
                    'mb-2': true,
                    'past-pr': data.start_timestamp <= parseInt(Date.now() / 1000, 10),
                    'current-pr': (data.start_timestamp <= parseInt(Date.now() / 1000, 10) && data.end_timestamp >= parseInt(Date.now() / 1000, 10))
                }"
                v-for="(data, time) in programs[day]" :key="time"
            >
                <strong>{{ time }}:</strong> {{ data.title }} ( Начало: {{ data.start_time }} )
            </div>
        </div>
    </div>
</div>
 
<script>
    const { createApp, ref, onMounted } = Vue;
 
    createApp({
        setup() {
            const programs = <?php echo json_encode($byWeeks) ?>;
            const dayNames = {
                1: "Понедельник", 2: "Вторник", 3: "Среда",
                4: "Четверг", 5: "Пятница", 6: "Суббота", 7: "Воскресенье"
            };
            const days = Object.keys(programs).sort();
            const activeDay = ref(0);
 
            const getCurrentDay = () => {
                const day = new Date().getDay();
                return day === 0 ? 7 : day;
            };
 
            onMounted(() => {
                // Set current day tab
                const currentDay = getCurrentDay().toString();
                activeDay.value = days.indexOf(currentDay);
 
                // Refresh at midnight
                const now = new Date();
                const midnight = new Date();
                midnight.setHours(24, 0, 0, 0);
                setTimeout(() => location.reload(), midnight - now);
            });
 
            return { programs, dayNames, days, activeDay };
        }
    }).mount('#app');
</script>
</body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2025, 19:15
Ответы с готовыми решениями:

Нужно, чтобы php скрипт выводил из xmltv программу по дням недели, как tv.mail.ru. Пока он выводит целиком за неделю
Здравствуйте. Есть html код &lt;div id=&quot;block_TV_content&quot;&gt; &lt;div class=&quot;date_cal&quot;&gt; &lt;div...

PHP скрипт. Вывода ближайшего дня рождения
Всем привет. Подскажите как сделать скрипт который будет отображать ближайший день рождения. Есть...

Скрипт, который выводит разницу между двумя датами в днях, часах, минутах, секундах. PHP
Всем привет, такая вот задачка, кому не сложно? Написать скрипт, который выводит разницу между...

12
Эксперт PHP
 Аватар для liris
4404 / 1044 / 154
Регистрация: 16.01.2023
Сообщений: 2,585
23.12.2025, 19:30
Лучший ответ Сообщение было отмечено oleg27.ed как решение

Решение

Оформите, пожалуйста, код в теги.

Не понял, что вы имеете ввиду под "переписать под php7"? Ваш код выглядит рабочим для версии 7.

Убрать можно. Просто уберите этот вывод в шаблоне. Вот тут:

JavaScript
1
<strong>{{ time }}:</strong> {{ data.title }} ( Начало: {{ data.start_time }} )
1
0 / 0 / 0
Регистрация: 09.03.2025
Сообщений: 24
23.12.2025, 19:44  [ТС]
Путь к XMLTV http://www.teleguide.info/download/new3/xmltv.xml
И нужно изменить меню навигации под этот стиль в 1.txt
Вложения
Тип файла: txt 1.txt (6.6 Кб, 22 просмотров)
0
0 / 0 / 0
Регистрация: 09.03.2025
Сообщений: 24
23.12.2025, 19:45  [ТС]
Меню навигации
PHP/HTML
1
2
3
4
5
6
7
8
9
<div class="date_cal">
<div class="week_day">
<span id="" class="wday w1">Понедельник</span>
<span id="" class="wday w2">Вторник</span>
<span id="" class="wday w3">Среда</span>
<span id="" class="wday w4">Четверг</span>
<span id="" class="wday w5">Пятница</span>
<span id="" class="wday w6">Суббота</span>
<span id="" class="wday w7">Воскресенье</span></div></div>
0
0 / 0 / 0
Регистрация: 09.03.2025
Сообщений: 24
24.12.2025, 15:52  [ТС]
Этот код работал на php 5. Сейчас у меня php 7.1. Он выводит всю программу неактивным цветом, когда путь $xml = simplexml_load_file("xmltv.xml");
и работает корректно, когда путь $xml = simplexml_load_file("http://www.teleguide.info/download/new3/xmltv.xml"); Почему?
Еще нужно изменить меню навигации и убрать возрастное разрешение (12+) в концах строк
0
 Аватар для Noname2331
57 / 48 / 10
Регистрация: 22.12.2024
Сообщений: 269
25.12.2025, 18:23
Лучший ответ Сообщение было отмечено oleg27.ed как решение

Решение

Если содержание файлов не различается, скрипт должен работать одинаково. Проверьте, одинаковые ли файлы по ссылке и локально. Возможно, php7 просто не имеет права получать контент по ссылке (если никаких данных нет, просто серый экран - так и есть), можно проверить allow_url_fopen настройку в php.ini

Убрать возрастной ценз можно, заменив

'title' => '' . $item->title

на

'title' => str_replace('(12+)', '', '' . $item->title)
1
Эксперт PHP
 Аватар для liris
4404 / 1044 / 154
Регистрация: 16.01.2023
Сообщений: 2,585
25.12.2025, 18:37
Цитата Сообщение от oleg27.ed Посмотреть сообщение
Этот код работал на php 5. Сейчас у меня php 7.1.
На 7.4 у меня код запускается и работает. Можно дорабатывать под свои нужды.
0
0 / 0 / 0
Регистрация: 09.03.2025
Сообщений: 24
05.01.2026, 19:04  [ТС]
В php.ini allow_url_fopen = On. Файл скачиваю отсюда http://www.teleguide.info/down... ltv.xml.gz Значит скрипт с локальным файлом не работает. Вся программа неактивным цветом. Помогите исправить, пожалуйста
0
 Аватар для Noname2331
57 / 48 / 10
Регистрация: 22.12.2024
Сообщений: 269
05.01.2026, 23:17
Что значит неактивным цветом. Лучше один раз увидеть, чем 100 раз услышать. Прикрепите скриншот к сообщению.
0
Эксперт PHP
 Аватар для liris
4404 / 1044 / 154
Регистрация: 16.01.2023
Сообщений: 2,585
07.01.2026, 16:28
Цитата Сообщение от Noname2331 Посмотреть сообщение
Что значит неактивным цветом
Там программа телепередач. То есть по сути на вывод строится список. И часть программ черным цветом, а часть серым. Его код нормально работает в целом, но не идеально подходит под хотелки ТСа. Надо чуть-чуть доработать напильником.
0
Эксперт PHP
 Аватар для liris
4404 / 1044 / 154
Регистрация: 16.01.2023
Сообщений: 2,585
07.01.2026, 16:33
Логика в том, что скрипт пытается разметить программу с учетом текущего времени. Те передачи, что уже прошли, помечаются серым цветом ("неактивным"). А все остальные черным.

Но работает это криво и ТС хочет этот механизм починить.

Цитата Сообщение от Noname2331 Посмотреть сообщение
Прикрепите скриншот к сообщению.
Прилепил. Но ошибся. На моем скрине опечатка. Подписи надо поменять местами.
Миниатюры
PHP скрипт выводит программу по дням недели. Нужно переписать под php 7 и убрать  ( Начало: 16.12.2025 17:20:00 ) в концах строк  
0
 Аватар для Noname2331
57 / 48 / 10
Регистрация: 22.12.2024
Сообщений: 269
07.01.2026, 19:11
Лучший ответ Сообщение было отмечено oleg27.ed как решение

Решение

У меня корректно работает подсветка прошедшего и будущего.

Я gz по последней ссылке подставил

Вместо

PHP
1
$xml = simplexml_load_file("xmltv.xml");
Вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$gzippedContent = file_get_contents('http://www.teleguide.info/download/new3/xmltv.xml.gz');
 
if ($gzippedContent === false) {
    die('Не рабочая ссылка');
}
 
$xmlContent = gzdecode($gzippedContent);
 
if ($xmlContent === false) {
    die('Не удалось распаковать архив');
}
 
$result = file_put_contents('xmltv.xml', $xmlContent);
 
$xml = simplexml_load_file("xmltv.xml");
 
if (!$xml) {
    die('Не удалось распарсить XML');
}
1
0 / 0 / 0
Регистрация: 09.03.2025
Сообщений: 24
19.01.2026, 19:34  [ТС]
Очень благодарю, здесь я сам разобрался.

Мне нужно еще изменить меню навигации на это

PHP/HTML
1
2
3
4
5
6
7
8
9
<div class="date_cal">
<div class="week_day">
<span id="" class="wday w1">Понедельник</span>
<span id="" class="wday w2">Вторник</span>
<span id="" class="wday w3">Среда</span>
<span id="" class="wday w4">Четверг</span>
<span id="" class="wday w5">Пятница</span>
<span id="" class="wday w6">Суббота</span>
<span id="" class="wday w7">Воскресенье</span></div></div>
Стиль в 1.txt

Старый яваскрипт
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 jQuery(document).ready(function() {
 var d = new Date();
 var day = d.getDate();
 var wday = d.getDay();
 var month=d.getMonth() + 1;
 var year=d.getFullYear();
 if(wday==0){wday=7};
 var i;
 for (i = 1; i < 8; i++) {
  if (wday==i){
  jQuery('.w'+i).prepend(day+'.'+month+'.'+year+'<br>').attr('id', year+'-'+month+'-'+day)
  }
  else{
  jQuery('.w'+i).attr('id',year+'-'+month+'-'+(day-(wday)+i))
  }
}
 jQuery('.week_day > span').click(function(){
 var this_date = jQuery(this).attr('id');
    jQuery('.activeD').removeClass('activeD');
      jQuery(this).addClass('activeD');
    });
    jQuery('.w'+wday).trigger('click');
 });
Если поможете, буду щчень благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.01.2026, 19:34
Помогаю со студенческими работами здесь

Вывод из xmltv программы по дням недели
Мне нужно, чтобы php скрипт выводил из xmltv программу по дням недели, как здесь...

Друзья сложность с календарём php точнее сопоставления цифр дням недели
Ситуация такая есть дни недели Понедельник ей сопоставлена цифра 2, вторник цифра 4, среда цифра 8,...

вывод названия дня недели
при выборки из базы есть выбор даты DATE_FORMAT(talon_doctor.date_talon, ' %d %M %w') as...

Вывод дня недели
echo date(&quot;l&quot;); Ничего не выводит)) В чём ошибка?) Мне нужно вывести текущий день недели)

Вывод названия дня недели по его номеру
Напишите программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru