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;
?>