PHP基于RSS的时间表

时间:2011-01-24 03:52:02

标签: php arrays preg-match

我在这里坚持了一段时间。我正在尝试构建一个函数,该函数根据日期检索计划信息(RSS提要在接下来的10天内提前)

问题在于筛选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];
}

但问题是我不断得到 - Notice: Undefined variable: m in ***/class.schedule.php on line 38

1 个答案:

答案 0 :(得分:3)

您在不理解的情况下将答案复制并粘贴到其他问题中。

您的preg_match行会填充$m(如果匹配),因为您将正则表达式模式传递给strpos并且它始终返回false。

模式周围的~分隔符不会作为文字字符显示在RSS Feed中,因此strpos永远不会找到它们。