[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как доработать рабочий скрипт
zatocnik
Есть рабочий PHP скрипт ТВ программ , который берет данные из m.tv.yandex.ru

<?
$file = fopen("http://m.tv.yandex.ru/?channel146=$_GET[ch]", "r");
while (!feof ($file)) {
$buffer = $buffer.fgets($file);
}
fclose ($file);
$pos = strpos($buffer, '<div class="b-schedule">');
$buffer = substr($buffer, $pos);
$pos = strpos($buffer, '</div>');
$buffer = substr($buffer, 0,$pos);
echo $buffer;
?>


Как его доработать его так , чтобы он брал только 1 определенный канал (Например отдельно 1 канал) , а не все в кучу сбрасывал ?



Спустя 13 часов, 19 минут, 6 секунд (4.07.2012 - 04:59) medvedeva написал(а):
В "$_GET[ch]" передавать ID канала, если верно поняла, но это не дело, если делать, то уже с кешированием.

Спустя 2 дня, 11 часов, 48 минут, 21 секунда (6.07.2012 - 16:48) zatocnik написал(а):
Не понял , а зачем кэширование ?

Спустя 3 минуты, 50 секунд (6.07.2012 - 16:51) DarkLynx написал(а):
Что бы не было постоянных обращений к http://m.tv.yandex.ru/..
Программа телепередач обновляется, ну максимум 2 раза в сутки, а то наверное и раз в неделю.. Поэтому запросили данные, закешировали и далее берете их из кеша а не опять же запрашиваете.. Ну конечно всё это с учетом времени обновления.. Сделайте сутки.. вполне должно хватит..

А.. ну и конечно же скорость работы =)))

Спустя 1 час, 10 минут, 40 секунд (6.07.2012 - 18:02) zatocnik написал(а):
Цитата (DarkLynx @ 6.07.2012 - 13:51)
Что бы не было постоянных обращений .
Программа телепередач обновляется, ну максимум 2 раза в сутки, а то наверное и раз в неделю..

С каналами разобрался , публикуется программа на 4 ближайшее часа , пример можно посмотреть здесь , так само и со всеми другими каналами .
остался еще один вопрос , как прописать в коде , что бы ссылки убрать на времени ? Посмотрите пример , поймете о чем я .

Спустя 1 час, 22 минуты, 38 секунд (6.07.2012 - 19:25) kamanch написал(а):
Цитата (zatocnik @ 6.07.2012 - 15:02)
как прописать в коде  , что бы ссылки убрать на времени ? Посмотрите пример , поймете о чем я .

У тебя там ссылка на время в ячейке
<td class="time">

Как вариант, ищешь это и стираешь все до конца следующего </td>

Спустя 35 минут, 58 секунд (6.07.2012 - 20:01) zatocnik написал(а):
Цитата (h.n.81 @ 6.07.2012 - 16:25)
У тебя там ссылка на время в ячейке
<td class="time">

Как вариант, ищешь это и стираешь все до конца следующего </td>

Не это не вариант <td class="time"> с яндекса транслируется . Надо как то в скрипте прописать , что бы он это игнорировал . Конечно если это возможно .

Спустя 23 минуты, 39 секунд (6.07.2012 - 20:24) kamanch написал(а):
Ну ты же, прежде чем вывести то, что взял с яндекса, получаешь это в скрипт? Строка там или еще что.. Вот и обрабатывай этот контент.

Если же, по какой-то непонятной причине, скрипт не имеет доступа к контенту, получаемого из яндекса, тогда JavaScrip'том для CSS класса "time" устанавливаем свойство visibility: hidden;

Спустя 2 минуты, 50 секунд (6.07.2012 - 20:27) kamanch написал(а):
ну вон же у тебя
echo $buffer;

перед этим этот $buffer и почисти от ячейки со временем

Я запустил твой скрип, в $buffer для каждого времени есть ячейка

<td class="time"><a href="/broadcast.xml?id=163923526">20:05</a></td>

Ссылку вырезаешь, оставляешь только время.

С регуляркой красиво и просто получится.

Спустя 49 минут, 35 секунд (6.07.2012 - 21:17) zatocnik написал(а):
Как весь код должен выглядеть ?
Я ничего не понимаю в PHP

Спустя 3 часа, 51 минута, 10 секунд (7.07.2012 - 01:08) kamanch написал(а):
перед
echo $buffer;

вставь
$reg='/<a href=\"\/broadcast.xml\?id=[0-9]*">/';
$buffer=preg_replace($reg, "", $buffer);

$reg='/(?<=\d|\d\d:\d\d)<\/a>/';
$buffer=preg_replace($reg, "", $buffer);


Данные регулярки не совсем эстетичные, но я о них только 2 раза читал, они противились и пинались и матерные слова типа "квантификаторы" выкрикивали, но кактус всё равно ели :)

Более опытные товарищи доведут до совершенства.

Но код работает.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.