1

現在のテレビ番組を特定のチャンネルで放送するには、どうしても助けが必要です。この API http://www.webtelevideo.com/api/を使用してプログラム名を取得したいと考えています。イタリアのすべてのテレビチャンネルのすべての番組を取得するこのページを見つけましたが、指定されたチャンネルで現在放送されている番組のみを表示したい. したがって、国のデータ、言語、評価などはなく、Web ページを表示しているときにオンになっているテレビ番組の名前のみが表示されます。http://www.webtelevideo.com/api/getSchedule.php?channel_id=350にアクセスしようとしました (たとえば)しかし、現在のプログラムだけを表示させたいのですが、文字列は1つだけです。Web やここの stackoverflow には、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>";
?>
4

1 に答える 1

2

次の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>";
?>
于 2013-01-06T02:13:20.700 に答える