1

首先,我想说我对 PHP 很陌生。我有一个 xml 文件:http ://www.anewmandesigns.com/RSSseptember2013.xml

在提要中,我试图使用 PHP 在我的网站上显示 9 月(4 日、11 日、18 日和 25 日)的周三日期(实际条目)。这是我的代码......我该如何修改?

<?php

    $rss = new DOMDocument();
    $rss->load('http://www.anewmandesigns.com/oakshade/calendar/rss/RSSseptember2013.xml');
    $feed = array();

    foreach ($rss->getElementsByTagName('item') as $node) 
    {
        $item = array (
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
            'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
        );
        array_push($feed, $item);
    }

    $limit = 5;

    for($x=0;$x<$limit;$x++) 
    {
        $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
        $link = $feed[$x]['link'];
        $description = $feed[$x]['desc'];
        $date = date('l F d, Y', strtotime($feed[$x]['date'])); 
        $year = substr($timestamp, 0, 4);
        $month = date(' M ', strtotime($feed[$x]['date']));
        $day = date(' d ', strtotime($feed[$x]['date']));
        echo '<p>'.$month.'<span> '.$day.'</span></p>';
        echo '<p><a href="'.$link.'" title="'.$title.'">'.$description.'</a></p>';
    }
?>
4

2 回答 2

0

您可以使用以下条件语句来检查是否是星期三:

if ( date('l', strtotime($feed[$x]['date']) ) == 'Wednesday') { 
    # code ...
}

检查是否是 9 月:

if ( date('F', strtotime($feed[$x]['date']) ) == 'September') { 
    # code ...
}

完整代码:

<?php

    $rss = new DOMDocument();
    $rss->load('http://www.anewmandesigns.com/oakshade/calendar/rss/RSSseptember2013.xml');
    $feed = array();

    foreach ($rss->getElementsByTagName('item') as $node) 
    {
        $item = array (
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
            'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
        );

        //echo date('l', strtotime($item['date']))."\n";    
        array_push($feed, $item);
    }

    $limit = 5;

    for($x=0;$x<$limit;$x++) 
    {
        if ( date('l', strtotime($feed[$x]['date']) ) == 'Wednesday')
        {  //  if it is wednesday, proceed

            $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
            $link = $feed[$x]['link'];
            $description = $feed[$x]['desc'];    

            $year = date('Y', strtotime($feed[$x]['date']));
            $month = date('M', strtotime($feed[$x]['date']));
            $day = date('d', strtotime($feed[$x]['date']));

            echo '<p>'.$month.'<span> '.$day.'</span></p>';
            echo '<p><a href="'.$link.'" title="'.$title.'">'.$description.'</a></p>';    
        }
    }

?>

笔记:

  • 请注意,您没有在$timestamp任何地方定义变量,我已将其更改为直接从pubDate字段中获取年份。

  • 在您发布的 XML 文件中,周三没有发布任何项目,因此上述代码不会输出任何内容,但如果您将其更改为不同的工作日,它应该可以工作。

  • 当前 XML 文件的日期都是 9 月,所以我在代码中避免了条件检查,但如果你也想检查月份,你可以添加它。

希望这可以帮助!

于 2013-09-06T15:51:55.837 回答
0

In this part of your code ...

if(date('mw', strtotime($item['date'])) == '093'){
    array_push($feed, $item);
}

EDIT: I have updated the code to only show september

于 2013-09-06T15:41:36.470 回答