2016-01-09 37 views
0

我的XML飼料是這裏 http://xml.betfred.com/football-bonus.xml不是隻顯示隨機的所有記錄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>"; 

} 
} 
} 
?> 

ok了不同的運動代碼現在忽略了在代碼 中有隨機賽馬相關參考的事實,2之間的XML結構是相同的 但是上面的代碼只顯示這些條目 1245 - Wycombe v Aston Villa 1330 - Linlithgow Rose v Fo RFAR 1400 - 卡普里v烏迪內斯 1500 - 巴塞羅那v格林納達 1600 - 里昂對特魯瓦 1700 - 佛羅倫薩v拉齊奧 1715 - 塞維利亞vs畢爾巴鄂競技 1730 - 心v阿伯丁 1830 - 維多利亞吉馬良斯v阿羅卡 1900 - 雷恩v洛里昂 1930 - 皇家馬德里vs拉科魯尼亞 1945年 - 羅馬v交流米蘭 2105 - 萊萬特v巴列卡諾

我敢肯定,你會發現有遺漏噸任何 幫助將不勝感激,因爲這是討厭我雞飛狗跳

+0

您是否正在嘗試創建通用的'BetFred' XML解析器? – RamRaider

+0

是,並試圖顯示每項運動的數據以及當前下注價格 –

+0

全部使用一個功能?我建議你建立一個類來做到這一點,而不是一個單一的功能 – RamRaider

回答

2

我知道你已經有了一個答案,但我想我會在這裏發佈這個 - 無論如何,它會繼續從另一篇文章。

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

RamRaider是輝煌的謝謝 !我也可以將所有其他的Feed也加入其中!再次感謝 –

1

當您創建新的數組條目添加日期和時間作爲關鍵:

$new_array[$eventy.$eventm.$eventd.$eventt] = array(... 

當你開始匹配相同的日期和時間會覆蓋舊條目。

也許嘗試

$eventid = $event->attributes()->{'eventid'}; 
$new_array[$eventy.$eventm.$eventd.$eventt.$eventid] = array(... 

獲得唯一的密鑰。

+0

:)沒有注意到它只顯示每個時間幀1條目 添加$ eventid完美工作 –