PHP基于RSS的时间表

时间:2011-01-17 13:37:56

标签: php rss

我有一个(可能)简单的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
            }
        }
}
?>

1 个答案:

答案 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
}

可行。但是没有更多的代码,很难进一步帮助。