XML Feed 不显示所有记录,仅随机显示
XML Feed not displaying all records only random
我的 XML 提要在这里
http://xml.betfred.com/football-bonus.xml
这是我用于另一项运动的代码,我刚刚将其复制到新页面中
<?php
function FBList() {
$xmlData = 'http://xml.betfred.com/football-bonus.xml';
$xml = simplexml_load_file($xmlData);
$curdate = date('d/m/Y');
$new_array = array();
foreach ($xml->event as $event) {
// if ($limit == $c) {
// break;
// }
// $c++;
$eventd = substr($event->attributes()->{'date'},6,2);
$eventm = substr($event->attributes()->{'date'},4,2);
$eventy = substr($event->attributes()->{'date'},0,4);
$eventt = $event->attributes()->{'time'};
$new_array[$eventy.$eventm.$eventd.$eventt] = array(
'eventd' => $eventd,
'eventm' => $eventm,
'eventy' => $eventy,
'eventt' => $eventt,
'eventdate' => $eventd.'/'.$eventm.'/'.$eventy,
'eventid' => $event->attributes()->{'eventid'},
'eventtime' => $event->attributes()->{'time'},
'eventname' => $event->attributes()->{'name'},
'venue' => $event->attributes()->venue,
'riders' => $event->bettype->bet,
'bettypeid' => $event->bettype->attributes()->{'bettypeid'},
);
}
ksort($new_array);
$limit = 10;
$c = 0;
foreach ($new_array as $event_time => $event_data) {
$racedate = $event_data['eventy'].$event_data['eventm'].$event_data['eventd'];
$today = date('Ymd');
if($today == $racedate){
// if ($limit == $c) {
// break;
//}
//$c++;
$replace = array("/"," ");
$riderscnt = $event_data['riders']->count();
$eventname = str_replace($replace,'-', $event_data['eventname']);
$venue = str_replace($replace,'-', $event_data['venue']);
echo "<div class=\"units-row unit-100\">
<div class=\"unit-20\" style=\"margin-left:0px;\">
".$event_data['eventtime']."
</div>
<div class=\"unit-50\">
".$event_data['venue'].' - '.$event_data['eventname']."
</div>
<div class=\"unit-20\">
<a href=\"horse-racing/race/".$event_data['bettypeid'].'/'.$venue."/".$eventname."\" style=\"text-decoration:none;\"><img src=\"betnow.gif\" ></a><br />
</div>
</div>";
}
}
}
?>
现在可以忽略代码中随机赛马相关参考的事实
XML 两者之间的结构是相同的
但是上面的代码只显示这些条目
1245 - 韦康比诉阿斯顿维拉
1330 - Linlithgow Rose 诉 Forfar
1400 - 卡尔皮 v 乌迪内斯
1500 - 巴塞罗那 v 格拉纳达
1600 - 里昂诉特鲁瓦
1700 - 佛罗伦萨 v 拉齐奥
1715 - 塞维利亚 v 毕尔巴鄂竞技
1730 - 哈茨 v 阿伯丁
1830 - Vitoria Guimaraes 诉 Arouca
1900 - 雷恩 v 洛里昂
1930 年 - 皇家马德里 v 拉科鲁尼亚
1945 - 罗马 v AC 米兰
2105 - 莱万特 v Rayo Vallecano
我确定您会注意到缺少 TONS
任何帮助将不胜感激,因为这让我难以置信
当您在新数组中创建条目时,您添加日期和时间作为键:
$new_array[$eventy.$eventm.$eventd.$eventt] = array(...
当您有在相同日期和时间开始的比赛时,它将覆盖旧条目。
也许试试
$eventid = $event->attributes()->{'eventid'};
$new_array[$eventy.$eventm.$eventd.$eventt.$eventid] = array(...
获取唯一键。
我知道你已经有了答案,但我想我还是 post 在这里 - 它从另一个 post 之前继续。
<?php
echo '
<style>
#bfresults{
width:40%;
font-size:0.9rem;
font-family:verdana,arial;
box-sizing:border-box;
}
#bfresults section{
margin:0.5rem auto;
padding:0.5rem;
box-sizing:border-box;
}
#bfresults section:nth-of-type(odd){
background:whitesmoke;
}
#bfresults section h1{
font-size:1.1rem;
color:blue;
}
#bfresults section h1 span{
color:darkgray;
}
#bfresults section h2{
font-size:1rem;
color:gray;
}
</style>';
$eid=25573326.20;
$events=(object)array(
'horses' => (object)array(
'url' => 'http://xml.betfred.com/Horse-Racing-Daily.xml',
'query' => '//event/bettype[ number( @bettypeid )="'.$eid.'" ]'
),
'football' => (object)array(
'url' => 'http://xml.betfred.com/football-bonus.xml',
'query' => '//event/bettype'
)
);
#$obj=$events->horses;
$obj=$events->football;
/* create the DOM object & load the xml */
$dom=new DOMDocument;
$dom->load( $obj->url );
/* Create a new XPath object */
$xp=new DOMXPath( $dom );
/* Search the DOM for nodes with particular attribute - bettypeid - use number function from XSLT to test */
$oCol=$xp->query( $obj->query );
/* If the query was successful there should be a nodelist object to work with */
if( $oCol ){
echo "<div id='bfresults'>";
foreach( $oCol as $node ) {
echo '
<section>
<h1>'.$node->parentNode->getAttribute('name').' - <span>[ '.$node->getAttribute('name').' ]</span></h1>
<h2>'.date( 'D, j F, Y H:i:s', strtotime( $node->getAttribute('bet-start-date').' '.$node->parentNode->getAttribute('time') ) ).'</h2>';
foreach( $node->childNodes as $bet ){
echo "<div>Name: {$bet->getAttribute('name')} ID: {$bet->getAttribute('id')} Price: {$bet->getAttribute('price')}</div>";
}
echo '</section>';
}
echo "</div>";
} else {
echo 'XPath query failed';
}
$dom = $xp = $col = null;
?>
我的 XML 提要在这里 http://xml.betfred.com/football-bonus.xml
这是我用于另一项运动的代码,我刚刚将其复制到新页面中
<?php
function FBList() {
$xmlData = 'http://xml.betfred.com/football-bonus.xml';
$xml = simplexml_load_file($xmlData);
$curdate = date('d/m/Y');
$new_array = array();
foreach ($xml->event as $event) {
// if ($limit == $c) {
// break;
// }
// $c++;
$eventd = substr($event->attributes()->{'date'},6,2);
$eventm = substr($event->attributes()->{'date'},4,2);
$eventy = substr($event->attributes()->{'date'},0,4);
$eventt = $event->attributes()->{'time'};
$new_array[$eventy.$eventm.$eventd.$eventt] = array(
'eventd' => $eventd,
'eventm' => $eventm,
'eventy' => $eventy,
'eventt' => $eventt,
'eventdate' => $eventd.'/'.$eventm.'/'.$eventy,
'eventid' => $event->attributes()->{'eventid'},
'eventtime' => $event->attributes()->{'time'},
'eventname' => $event->attributes()->{'name'},
'venue' => $event->attributes()->venue,
'riders' => $event->bettype->bet,
'bettypeid' => $event->bettype->attributes()->{'bettypeid'},
);
}
ksort($new_array);
$limit = 10;
$c = 0;
foreach ($new_array as $event_time => $event_data) {
$racedate = $event_data['eventy'].$event_data['eventm'].$event_data['eventd'];
$today = date('Ymd');
if($today == $racedate){
// if ($limit == $c) {
// break;
//}
//$c++;
$replace = array("/"," ");
$riderscnt = $event_data['riders']->count();
$eventname = str_replace($replace,'-', $event_data['eventname']);
$venue = str_replace($replace,'-', $event_data['venue']);
echo "<div class=\"units-row unit-100\">
<div class=\"unit-20\" style=\"margin-left:0px;\">
".$event_data['eventtime']."
</div>
<div class=\"unit-50\">
".$event_data['venue'].' - '.$event_data['eventname']."
</div>
<div class=\"unit-20\">
<a href=\"horse-racing/race/".$event_data['bettypeid'].'/'.$venue."/".$eventname."\" style=\"text-decoration:none;\"><img src=\"betnow.gif\" ></a><br />
</div>
</div>";
}
}
}
?>
现在可以忽略代码中随机赛马相关参考的事实 XML 两者之间的结构是相同的 但是上面的代码只显示这些条目 1245 - 韦康比诉阿斯顿维拉 1330 - Linlithgow Rose 诉 Forfar 1400 - 卡尔皮 v 乌迪内斯 1500 - 巴塞罗那 v 格拉纳达 1600 - 里昂诉特鲁瓦 1700 - 佛罗伦萨 v 拉齐奥 1715 - 塞维利亚 v 毕尔巴鄂竞技 1730 - 哈茨 v 阿伯丁 1830 - Vitoria Guimaraes 诉 Arouca 1900 - 雷恩 v 洛里昂 1930 年 - 皇家马德里 v 拉科鲁尼亚 1945 - 罗马 v AC 米兰 2105 - 莱万特 v Rayo Vallecano
我确定您会注意到缺少 TONS 任何帮助将不胜感激,因为这让我难以置信
当您在新数组中创建条目时,您添加日期和时间作为键:
$new_array[$eventy.$eventm.$eventd.$eventt] = array(...
当您有在相同日期和时间开始的比赛时,它将覆盖旧条目。
也许试试
$eventid = $event->attributes()->{'eventid'};
$new_array[$eventy.$eventm.$eventd.$eventt.$eventid] = array(...
获取唯一键。
我知道你已经有了答案,但我想我还是 post 在这里 - 它从另一个 post 之前继续。
<?php
echo '
<style>
#bfresults{
width:40%;
font-size:0.9rem;
font-family:verdana,arial;
box-sizing:border-box;
}
#bfresults section{
margin:0.5rem auto;
padding:0.5rem;
box-sizing:border-box;
}
#bfresults section:nth-of-type(odd){
background:whitesmoke;
}
#bfresults section h1{
font-size:1.1rem;
color:blue;
}
#bfresults section h1 span{
color:darkgray;
}
#bfresults section h2{
font-size:1rem;
color:gray;
}
</style>';
$eid=25573326.20;
$events=(object)array(
'horses' => (object)array(
'url' => 'http://xml.betfred.com/Horse-Racing-Daily.xml',
'query' => '//event/bettype[ number( @bettypeid )="'.$eid.'" ]'
),
'football' => (object)array(
'url' => 'http://xml.betfred.com/football-bonus.xml',
'query' => '//event/bettype'
)
);
#$obj=$events->horses;
$obj=$events->football;
/* create the DOM object & load the xml */
$dom=new DOMDocument;
$dom->load( $obj->url );
/* Create a new XPath object */
$xp=new DOMXPath( $dom );
/* Search the DOM for nodes with particular attribute - bettypeid - use number function from XSLT to test */
$oCol=$xp->query( $obj->query );
/* If the query was successful there should be a nodelist object to work with */
if( $oCol ){
echo "<div id='bfresults'>";
foreach( $oCol as $node ) {
echo '
<section>
<h1>'.$node->parentNode->getAttribute('name').' - <span>[ '.$node->getAttribute('name').' ]</span></h1>
<h2>'.date( 'D, j F, Y H:i:s', strtotime( $node->getAttribute('bet-start-date').' '.$node->parentNode->getAttribute('time') ) ).'</h2>';
foreach( $node->childNodes as $bet ){
echo "<div>Name: {$bet->getAttribute('name')} ID: {$bet->getAttribute('id')} Price: {$bet->getAttribute('price')}</div>";
}
echo '</section>';
}
echo "</div>";
} else {
echo 'XPath query failed';
}
$dom = $xp = $col = null;
?>