2011-05-13 115 views
0

我將一個URL變量傳遞給輸出我們田徑成績的XML提要的PHP頁面。用PHP中的全名替換URL變量名稱的縮寫

例如,我們的men's basketball XML feed的URL變量是「m-baskbl」。其他運動有類似的縮寫。

問題是我需要能夠輸出完整的運動名稱,即「男子籃球」,但該字符串不會出現在XML中。

我的問題是,你知道一種方法來替換PHP中的體育名稱的URL變量縮寫嗎?例如,「m-baskbl」輸出「男子籃球」。

這裏是我的pageXML和代碼:

 <?php 
     // Output the current school year (previous year through July 31, current year on/after August 1) 
     $year = date('Y') - 1; 
     $month = date('n'); 
     if($month >= 8) $year++; 

     // Build the XML file path 
     $p ="http://www.gostanford.com/data/xml/events/"; 
     $s = $_GET['s']; 
     $e = "/$year/index.xml"; 
     $file = "$p$s$e"; 

     $xml = simplexml_load_file($file); 

     // Reverse chronological order 
     $xmlArray = array(); 
     foreach ($xml as $event_date) $xmlArray[] = $event_date; 
     $xmlArray = array_reverse($xmlArray); 

     foreach ($xmlArray as $event_date) 
     { 
      // Only output if complete 
      if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs'])) 
      { 
      // Is Stanford the home team? 
      $home = ($event_date->event['hc'] == 'stan'); 
      // Only show opponents' name 
      $name = $home ? $event_date->event['vn'] : $event_date->event['hn']; 
      // Output "vs" if home game or "at" if away game 
      $preposition = $home ? 'vs' : 'at'; 
      // Tie? 
      if((int)$event_date->event['hs'] == (int)$event_date->event['vs']) 
      { 
      $result = 'Tie'; // Tie 
      } 
      else if((int)$event_date->event['hs'] > (int)$event_date->event['vs']) // Home team won? 
      { 
      if($home) // Home? 
      { 
      $result = 'Win'; // You're home and the home team won 
      } 
      else 
      { 
      $result = 'Loss'; // You're away, but the home team won 
      } 
      } 
      else // Home team lost 
      { 
      if($home) // Home? 
      { 
      $result = 'Loss'; // You're away, but the home team won 
      } 
      else 
      { 
      $result = 'Win'; // You're home and the home team won 
      } 
      } 
      echo '<li>'; 
       echo '<h3>', $preposition, ' ', $name, ' - ', '<em>', $result, '</em></h3>'; 
       echo '<p><strong>', $event_date->event['vn'], ' ', $event_date->event['vs'], ' - ', $event_date->event['hn'], ' ', $event_date->event['hs'], '</strong></p>'; 
       echo '<p>', date('F j, Y', strtotime($event_date['date'])), '</p>'; 
      echo '</li>'; 
      } 
     } 
     ?> 
+0

你有完整的名單? – 2011-05-13 18:23:11

+0

目前沒有現有的列表。只有大約30個團隊,所以我可以創建第二個XML文件或將這些名稱作爲變量嵌入到PHP頁面中。我只是不確定如何將兩者結合在一起。 – Ryan 2011-05-13 18:31:22

回答

1

你也許可以做一個簡單的數組映射例如

$Abbreviations = array(
    'm-baskbl' => "Men's Basketball", 
    'w-baskbl' => "Women's Basketball" 
); 

// somewhere you know you're fetching data for "m-baskbl" 
// use that variable to fetch the actual name 
$Division = $Abbreviations['m-baskbl']; // Men's Basketball 

只是一個想法:)