Эхо Restful API на странице PHP
Мне нужна отчаянная помощь для передачи текущей телепрограммы по определенному каналу. Я хочу использовать этот API http://www.webtelevideo.com/api/ чтобы получить название программы. Я нашел эту страницу, которая захватывает все программы всех итальянских телеканалов, но я хочу, чтобы показывали только программы, транслируемые в данный момент по указанному каналу. Таким образом, без данных о стране, языка, рейтинга и т. Д.... только название телевизионной программы, которая включена в момент просмотра веб-страницы. Я пытался перейти на http://www.webtelevideo.com/api/getSchedule.php?channel_id=350 (например), но я хочу, чтобы отображалась только программа CURRENT, ТОЛЬКО одна строка. Я знаю, что в Интернете и здесь, в stackru, есть много постов об API и cURL, но я новичок в такого рода вещах, и мне действительно нужна ваша помощь. Заранее большое спасибо
<?php $guide = get_post_meta($post->ID, '_wpb_in_onda', true); ?>
<?php
function GetChanels()
{
return json_decode(file_get_contents("http://www.webtelevideo.com/api/getSchedule.php"),true);
}
function GetProgramsOnChanel($ChanName)
{
foreach(GetChanels() as $Chanel)
{
{
return $Chanel["Program"];
}
}
return Array("name"=>"none");
}
function GetCurrentProgramOnChanel($ChanName)
{
foreach(GetProgramsOnChanel($ChanName) as $Program)
{
$Title = $Program["title"];
$start = strtotime($Program["ProgramSchedule"]["start"]);
$end = strtotime($Program["ProgramSchedule"]["stop"]);
$Current = ($start < strtotime("now +1 hour") and strtotime("now +1 hour") < $end);
if($Current)
{
return $Program;
}
}
return Array("title"=>"none");
}
foreach(GetChanels() as $Chan)
$CurrentProgram = GetCurrentProgramOnChanel(" . $guide . ");
echo "Ora è in onda: " . $CurrentProgram["title"] . ". ";
echo "Termina alle: " . $CurrentProgram["ProgramSchedule"]["stop"] . " (ora italiana) <br>";
?>
1 ответ
Следующий PHP дает вам данные из API. Вы можете изменить его так, чтобы он соответствовал вашим потребностям =)
<?php
function GetChanels()
{
return json_decode(file_get_contents("http://www.webtelevideo.com/api/getSchedule.php"),true);
}
function GetProgramsOnChanel($ChanName)
{
foreach(GetChanels() as $Chanel)
{
if($Chanel["name"] == $ChanName)
{
return $Chanel["Program"];
}
}
return Array("name"=>"none");
}
function GetCurrentProgramOnChanel($ChanName)
{
foreach(GetProgramsOnChanel($ChanName) as $Program)
{
$Title = $Program["title"];
$start = strtotime($Program["ProgramSchedule"]["start"]);
$end = strtotime($Program["ProgramSchedule"]["stop"]);
$Current = ($start < strtotime("now +1 hour") and strtotime("now +1 hour") < $end); // + 1 hour is for timezone adjustment
if($Current)
{
return $Program;
}
}
return Array("title"=>"none");
}
function GetNextProgramOnChanel($ChanName)
{
$HitCurrent = false;
foreach(GetProgramsOnChanel($ChanName) as $Program)
{
if($HitCurrent)
{
return $Program;
}
$Title = $Program["title"];
$start = strtotime($Program["ProgramSchedule"]["start"]);
$end = strtotime($Program["ProgramSchedule"]["stop"]);
$Current = ($start < strtotime("now +1 hour") and strtotime("now +1 hour") < $end); // + 1 hour is for timezone adjustment
if($Current)
{
$HitCurrent = true;
}
}
return Array("title"=>"none");
}
/*
foreach(GetChanels() as $Chan)
{
$Program = GetCurrentProgramOnChanel($Chan["name"]);
echo "The current program in: " . $Chan["name"] . " is : " . $Program["title"] . "<br>";
}
*/
$guide = get_post_meta($post->ID, '_wpb_in_onda', true);
$CurrentProgram = GetCurrentProgramOnChanel($guide);
echo "Ora è in onda: " . $CurrentProgram["title"] . ". ";
echo "Termina alle: " . $CurrentProgram["ProgramSchedule"]["stop"] . " (ora italiana) <br>";
?>