0

私はチャンネル公開サイトを持っており、そのチャンネルの CNN 放送プログラムに参加したいと考えています。CNN はここでプログラムをブロードキャストします (ソースで見ることができます - XML ファイル):

http://tvprofil.net/xmltv/data/cnn.info/weekly_cnn.info_tvprofil.net.xml

出金時期に応じたデータは?

例えば:

Now program: "bitmez's table"
next program: "stack's table" in 30 minute  

これは可能ですか?

更新 1:

XMLデータを取得できますが、XMLファイルのすべてに-

<?php

$url = 'http://tvprofil.net/xmltv/data/cnn.info/weekly_cnn.info_tvprofil.net.xml';
$xml = simplexml_load_file($url);
if (!$xml) {
    trigger_error('XML file -- read error',E_USER_ERROR);
    return;
}

foreach ($xml as $programme) {
    echo 'Now: ', $programme->title, "<br>\n";
}
4

2 に答える 2

2
<?php

$url = 'weekly_cnn.info_tvprofil.net.xml';
$xml = simplexml_load_file($url);

$now = new DateTime('now');
$it  = new IteratorIterator($xml->programme);

foreach ($it as $programm)
{
  $start = DateTime::createFromFormat('YmdHis', $programm['start']);
  if ($start > $now)
    break;      
}

echo 'Now: ', $programme->title;
$it->next();
if ($it->valid) {
    echo 'Next: ', $it->current()->title;
}

リクエストをメールで送らないでください。あなたの質問に答えたからといって、もう一度やり直す必要があるわけではありません。それは基本的に同じで、自分のためにマニュアルを使って学びます。乾杯。

于 2013-10-21T20:39:00.063 に答える
-1

属性を取得して比較する必要があります

$url   = 'http://tvprofil.net/xmltv/data/cnn.info/weekly_cnn.info_tvprofil.net.xml';
$array = (array) simplexml_load_file($url);

// FLATTEN THE RESULT SET
$programmes = array();
foreach ($array as $k => $v)
{
    if ($k == 'programme'){
        foreach($v as $p)
        {
            $programmes[] = (array) $p;
        }
        break;
    }
}

$tim = time();
$now = array();
$nex = array();

foreach ($programmes as $show)
{
    $attr = $show['@attributes'];
    if ($tim >= $attr['start'] && $tim <= $attr['stop'])
    {
        // GETS THE CURRENT SHOW
        $now = $show;
    }
}

print_r($now);
于 2013-10-19T15:29:50.233 に答える