我有一个频道发布网站,我想进入频道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";
}
答案 0 :(得分: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;
}
off-topic请不要仅仅因为我回复了您的question而向我发送电子邮件,但这并不意味着我需要再次这样做。它基本上是一样的,通过使用手册来学习,为了你自己。 Cheeers。
答案 1 :(得分:-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);