Помогите подправить парсер телепередач

12
artscripts
На сайте с 24.09.2008
Offline
136
2728

Есть такой небольшой парсер, который тянет инфу с яндекса о телепередачах.

 <?php


$date0 = date("Y-m-d");
if (!isset($channel)) $channel = "1";
if (!isset($date)) $date = date("Y-m-d");


// Настройки системы
//$title = 'TV-программа'; //заголовок сайта
//$copy = 'Тв'; //копирайт (надпись внизу страницы)
$your_site = 'afishka.cv.ua'; //адрес главной страницы Вашего сайта, например: www.yandex.ru
$use_images = 1; //использовать картинки: 0 - с сервера яндекса; 1 - со своего сервера (находятся в папке /i/logo/ )
$file=implode("",file('http://tv.yandex.ru/index.xml?hour=6&$date&period=24&mode=print'));
//$file1=implode("",file('http://tv.yandex.ru/index.xml?mode=print'));

// Заменяем заголовки и т.п.
//$file=str_replace('Copyright <nobr>© 2001—'.Date("Y").' </nobr>','Copyright <nobr>© '.Date("Y").' «<a //href="http://'.$your_site.'">'.$copy.'</a>»</nobr><br />Программа телепередач взята с сайта <a href="http://tv.yandex.ru/" //target="_blank">tv.yandex.ru</a><br />Работает на скрипте «<a href="http://e-moe.ru/" target="_blank">TV-программа lite</a>»',$file); //1
//$file=str_replace('Яндекс.Телепрограмма','Телепрограмма - '.$title,$file); //2
//$file=str_replace('Яндекс',$title,$file); //3
if($use_images==1) {$img_scr='';} else {$img_scr='http://tv.yandex.ru/';} $file=str_replace('img src="/','img src="'.$img_scr,$file);//4
echo $file;
echo $date;

?>

Вроде бы все работает и парсит телеканалы, но встает одна проблема, время телепередач отображается неправильно примерно на 10-12 часов отстает. Помогите исправить.

https://soundmain.ru - библиотека звукорежиссера и любителя
Ragnarok
На сайте с 25.06.2010
Offline
226
#1

рискну предположить что это из-за того, что сервер с которого парсится находится в другой стране

//TODO: перестать откладывать на потом
artscripts
На сайте с 24.09.2008
Offline
136
#2

Ragnarok, вы совершенно правы мой проект хостится в атланте, яндекс телепередачи в России. Эту разницу во времени не исправить? Получается надо прописать смещение во времени на +8 часов, но познаний не хватает((

[Удален]
#3

У Вас же в GET запросе http://tv.yandex.ru/index.xml?hour=6&$date&period=24&mode=print передаётся переменная hour=6...

Не пробовали менять?

artscripts
На сайте с 24.09.2008
Offline
136
#4
Freon:
hour=6

Этотот пораметр определяет с какого времени начинается новый день, то есть примерно 5-6 утра. Он на сдвиг по времени не влияет.

Может ктонибудь подскажет рабочий парсер?

DiAksID
На сайте с 02.08.2008
Offline
218
#5

а если с PHP установкой date.timezone поиграться ?

show must go on !!!...
Ragnarok
На сайте с 25.06.2010
Offline
226
#6

так расхождение таки в 6, 8 или 10-12 часов?

artscripts
На сайте с 24.09.2008
Offline
136
#7
DiAksID:
а если с PHP установкой date.timezone поиграться ?

Может быть, пол дня играюсь, познаний мало...

<?php

date_default_timezone_set('America/Atlanta');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){

echo 'Script timezone differs from ini-set timezone.';

} else {

echo 'Script timezone and ini-set timezone match.';

}

?>

пишет что мое время отличается от времени сервера.

Ragnarok:
так расхождение таки в 6, 8 или 10-12 часов?

Я просто туплю и не знаю как считать)0 вперед или назад.

Вот например в России

5:00 Новости

5:05 Доброе утро

9:00 Новости

9:20 Контрольная закупка

9:50 Жить здорово!

11:00 ЖКХ

12:00 Новости

Эта же программа но американском сервере

21:00 Новости

21:05 Доброе утро

1:00 Новости

1:20 Контрольная закупка

1:50 Жить здорово!

3:00 ЖКХ

4:00 Новости

Вот как она считается и куда?

если бы было высчетка по ip и сдвигалась программа по времени относительно в какой стране пользователь, было бы супер. а так это геморой для тез сайтов что хостятся не в России.

php.developer
На сайте с 22.11.2010
Offline
94
#8
artscripts:
date_default_timezone_set('America/Atlanta');

Europe/Moscow может? Либо я не так понял:)

Jake Foley
На сайте с 16.08.2008
Offline
151
#9

А если просто поменять время на сервере - не получится ? :)

Ragnarok
На сайте с 25.06.2010
Offline
226
#10

+8 часов

есть вариант переделать курлом, при этом сначала запрашивая страницу и изменяя там "ваша страна" или типа того

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий