1

私は次のコードを持っています:

        $rss[] = $this->rssparser->set_feed_url('someUrl')->set_cache_life(30)->getFeed(4);
        $rss[] = $this->rssparser->set_feed_url('someURL')->set_cache_life(30)->getFeed(3);
        $rss[] = $this->rssparser->set_feed_url('someURL')->set_cache_life(30)->getFeed(5);

それらのそれぞれは異なる に表示されてdivおり、私が望むのは、関連するチャネルのタイトルが関連する に表示されることdivです。

これまでのところ、私は持っています:

foreach ($rss as $feed)
{
    $channel = $this->rssparser->channel_data['title'];

    $result = "<div class='rssFeed'>";
    $result .= '<h3>'.$channel.'</h3>';

    foreach ($feed as $item)
         {  
        $result .= '<div class="rssContent">
            <a href="'.$item['link'].'">'.$item['title'].'</a>
            <br />
            <span>'.$item['pubDate'].'</span>
            </div>
            ';
        }
            $result .= '</div>';

            echo $result;

        }

しかし、それは上部の配列の最後のチャンネルからのタイトルのみを表示します...

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

0

次のフィードを取得する前にチャンネル タイトルを保存できます。例えば: -

<?php
class Controller
{
    public function action()
    {
        $feeds = array(
            array('url' => 'http://example.org/feed.rss', 'count' => 3),
            array('url' => 'http://example.org/feed.rss', 'count' => 4),
            array('url' => 'http://example.org/feed.rss', 'count' => 5),
        );

        $rss = array();

        foreach ($feeds as $feed) {
            $rss[] = array(
                'items' => $this->rssparser->set_feed_url($feed['url'])->set_cache_life(30)->getFeed($feed['count']),
                'title' => $this->rssparser->channel_data['title'],
            );
            $this->rssparser->clear();
        }
    }
}

次に、次のようにフィードを反復処理します。

<?php foreach ($rss as $feed): ?>
    <h1><?php echo $feed['title']; ?></h1>
    <?php foreach ($feed['items'] as $item): ?>
        <a href="<?php echo $item['link']; ?>">
            <?php echo $item['title']; ?>
        </a>
    <?php endforeach; ?>
<?php endforeach; ?>
于 2013-10-03T13:16:33.340 に答える