2013-01-06 2 views
1

특정 채널에 의해 방송 된 현재 TV 프로그램을 얻는 데 필사적 인 도움이 필요합니다. 이 API를 http://www.webtelevideo.com/api/으로 사용하여 프로그램 이름을 가져 오려고합니다. 모든 이탈리아 TV 채널의 모든 프로그램을 가져 오는이 페이지를 찾았지만 현재 방송 된 프로그램 만 지정된 채널로 표시하고 싶습니다. 그래서 국가 데이터, 언어, 등급 등 ...없이 웹 페이지를 보는 순간에 켜져있는 TV 프로그램의 이름 만. http://www.webtelevideo.com/api/getSchedule.php?channel_id=350 (예를 들어)로 가려고했지만 CURRENT 프로그램 만 나타나도록하고 싶습니다. 단 하나의 문자열. 나는 웹상에서 그리고 여기 stackoverflow에서 API와 cURL에 관한 많은 게시물이 있지만 이런 종류의 멍청한 놈이라는 것을 알고 있으며 정말 도움이 필요하다. 미리 감사드립니다.Echo Restful API in PHP 페이지

<?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>"; 
?> 
+0

을 변경할 수 있습니다! 그것은 시간 낭비입니다. – ZombieSpy

답변

2

다음 php는 API의 데이터를 제공합니다. 그것은 당신의 요구에 맞게 있도록 당신은 당신이 각 샤넬의 API 텍스트를 가져옵니다 그것으로, 하단에 필요하지 않습니다 ") $ 찬로 ((GetChanels) foreach는") =

<?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>"; 
?> 
+0

당신이 제공 한 코드로 나는 이것을 얻었다 : 경고 : DOMDocument :: loadHTMLFile() [domdocument.loadhtmlfile] : htmlParseEntityRef : expecting ';' http://www.webtelevideo.com/#!/Notte, line : 537 in /home/tvindire/public_html/testel.php 3 행 ... prog2 prog를 대체해야합니까? "Rai Uno"? 그리고 그 API를 사용하려면 어떤 코드를 사용해야합니까? 도움을 주셔서 감사합니다 – Ankloop

+0

@ user1849781이 새로운 코드가 작동하면 시도하십시오.) – ZombieSpy

+0

고맙습니다 !!!!!!! 그것은 작동합니다! 그러나 단일 채널 (현재 웹 페이지에 따라 변경 될 예정)에 대한 현재 프로그램을 표시하려면 어떤 코드를 사용해야합니까? – Ankloop