2011-01-24 94 views
0

我一直在這裏停留了一段時間。我試圖建立一個函數,它可以根據當天的情況檢索日程安排信息(RSS源具有未來10天的高級版本)PHP RSS基於時間表

問題是通過RSS提要篩選以刪除我不提供的數據想 - 2011年如1月24日:第7天的需求是7

所以,當我使用

<?php echo schedule('01/24/2011'); ?> 

它調用此:

//Finds the day by stripping data from the myDragonnet RSS feed. 
function schedule($given_date) { 
    $url = "http://mydragonnet.hkis.edu.hk/schedule/day_schedule_rss.php?schedule_id=1"; 
    $rss = simplexml_load_file($url); 
    $date = date("~jS M Y~", strtotime($given_date)); 
    if($rss) { 
     foreach($rss->channel->item as $item) { 
      foreach ($item->title as $story) { 
       if (strpos($date, $story) !== false) { 
        preg_match("/Day (\d+)/", $story, $m); 
        break; // stop searching 
       } 
      } 
     } 
    } 
    return $m[1]; 
} 

但問題是我連續ly越來越 - Notice: Undefined variable: m in ***/class.schedule.php on line 38

+0

看着你正在拉動的RSS源,這個正則表達式不會總是有效,因爲日期名稱並非總是數字(「日期C2」)。 – 2011-01-24 04:08:10

+0

我以前曾使用它 - 如果設置了非數字日期,它將在代碼中稍後默認爲特殊的日程安排。同樣在週末沒有一天的情況下,這裏將使用這個:\t \t if(empty($ m)){ \t $ m [1] = 0; } – 2011-01-24 04:11:27

回答

3

您正在複製和粘貼您的其他問題的答案而不理解。

您的preg_match行會填充$m(如果匹配)無法到達,因爲您正在將正則表達式模式傳遞到strpos,並且它總是返回false。

模式周圍的~分隔符不會作爲文字字符出現在RSS提要中,因此strpos永遠不會找到它們。