我有一个(可能)简单的PHP问题。我正在从RSS提要中提取时间表。 RSS输出如下所示:
17th Jan 2011 : Day 2
18th Jan 2011 : Day 3
19th Jan 2011 : Day 4
20th Jan 2011 : Day 5
我正在尝试删除所有信息,因此只剩下“Day x”。计划在8天的周期内运行,但是我将RSS解析器限制为仅一天,所以我得到了当天。
我用它来拉RSS:
$rss->parse();
$rss->showStories('1');
经过一些修修补补后,我想出了这个。
$i=1;
while($i<=8) {
if (preg_match("/Day 3/i", "Day ".$i)) {
echo $i;
} else {
$i++;
}
}
显然问题从这里开始:
if (preg_match("/Day 3/i", "Day ".$i)) {
我希望这能找到当前的日程表日,然后显示相应的数据。我是否以正确的方式接近这一点,有人能指出我正确的方向吗?
谢谢!
编辑:对于任何想要它的人来说,固定代码如下:
<?php
$url = "";
$rss = simplexml_load_file($url);
if($rss) {
$items = $rss->channel->item;
foreach($items as $item) {
foreach ($item->title as $story) {
if (!preg_match(date("/jS M Y/"), $story)) continue;
preg_match("/Day (\d+)/", $story, $m);
echo $m[1]; // should print "2" if today is January 17
break; // stop searching
}
}
}
?>
答案 0 :(得分:2)
您没有说明您使用的是哪个RSS库,而是
foreach ($rss->stories as $story) {
// skips stories that are not today
if (!preg_match(date("/jS M Y/"), $story)) continue;
preg_match("/Day (\d+)/", $story, $m);
echo $m[1]; // should print "2" if today is January 17
break; // stop searching
}
可行。但是没有更多的代码,很难进一步帮助。