我在这里坚持了一段时间。我正在尝试构建一个函数,该函数根据日期检索计划信息(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
答案 0 :(得分:3)
您在不理解的情况下将答案复制并粘贴到其他问题中。
您的preg_match
行会填充$m
(如果匹配),因为您将正则表达式模式传递给strpos
并且它始终返回false。
模式周围的~
分隔符不会作为文字字符显示在RSS Feed中,因此strpos永远不会找到它们。