Попытка сортировать сообщения из каналов на основе даты, а не показывать результаты по блогам - PullRequest
0 голосов
/ 08 июня 2011

Ниже приведена часть полного скрипта, который я построил, который получает описание, изображения, заголовок из блога rss. Что я делаю, так это использую этот код для каждого RSS, который я хочу включить в свою страницу, и результаты отображаются как

1-й блог (показаны 25 результатов) и ниже этого

2-й блог (показаны еще 25 результатов)

и т. Д. .

Моя цель - сортировать результаты по дате, а не по блогам. Полезно сказать, что все эти сообщения имеют временные метки, такие как <pubDate>Wed, 08 Jun 2011 14:12:00 +0000</pubDate>.

Вот мой код, который правильно показывает название поста.

<?php
$myrss = new DOMDocument;
libxml_use_internal_errors(TRUE);
$myrss->load ('LINK TO RSS'' . $i; } ?>

Это структура RSS

<item><guid isPermaLink="false"></guid><pubDate></pubDate><atom:updated></atom:updated><title></title><description></description><link></link><author></author></item>

1 Ответ

0 голосов
/ 08 июня 2011

Грубо, вот как бы я это сделал.

$arr_rss_feeds = array( 'link1', 'link2', 'link3', ... );
$arr_posts = array();

foreach( $arr_rss_feeds as $rss_feed )
{
    //## Connect to RSS feed, get posts (not shown)
    $arr_posts[ strtotime( 'post date field here' ) ] = array( 
                'title'   => 'Title here'
            ,   'url'     => 'URL here'
    );
}

//## Sort the posts by timestamp (reverse, so newest first)
krsort( $arr_posts );

foreach( $arr_posts as $post )
{
    //## Output your list using the 'title' and 'url' from above.
}

По сути, вы помещаете все сообщения из всех каналов в один массив с ключом их временной метки Unix, сортируете массив на основе этой временной метки и затем выводите их по порядку.

...