PHP RSS基于时间表
问题描述:
我一直在这里停留了一段时间。我试图建立一个函数,它可以根据当天的情况检索日程安排信息(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
答
您正在复制和粘贴您的其他问题的答案而不理解。
您的preg_match
行会填充$m
(如果匹配)无法到达,因为您正在将正则表达式模式传递到strpos
,并且它总是返回false。
模式周围的~
分隔符不会作为文字字符出现在RSS提要中,因此strpos永远不会找到它们。
看着你正在拉动的RSS源,这个正则表达式不会总是有效,因为日期名称并非总是数字(“日期C2”)。 – 2011-01-24 04:08:10
我以前曾使用它 - 如果设置了非数字日期,它将在代码中稍后默认为特殊的日程安排。同样在周末没有一天的情况下,这里将使用这个:\t \t if(empty($ m)){ \t $ m [1] = 0; } – 2011-01-24 04:11:27