début de script pour fusionner les RSS des strips et les annonces sur le forum
This commit is contained in:
parent
726aacc663
commit
d45e9d721f
66 changed files with 12583 additions and 0 deletions
74
feed_merge.php
Normal file
74
feed_merge.php
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
|
||||
// source : http://devzone.zend.com/article/3208-Using-Zend_Feed-to-Merge-Multiple-RSS-Feeds
|
||||
|
||||
require_once 'Zend/Feed.php';
|
||||
|
||||
function loadFeed ($url) {
|
||||
try {
|
||||
$feed = Zend_Feed::import($url);
|
||||
} catch (Zend_Feed_Exception $e) {
|
||||
// feed import failed
|
||||
return null;
|
||||
}
|
||||
return $feed;
|
||||
}
|
||||
|
||||
// Feed → array
|
||||
function getEntriesAsArray ($feed) {
|
||||
$entries = array();
|
||||
foreach ($feed as $entry) {
|
||||
$entries[] = array (
|
||||
'title' => $entry->title(),
|
||||
'link' => $entry->link(),
|
||||
'guid' => $entry->guid(),
|
||||
'lastUpdate' =>strtotime($entry->pubDate()),
|
||||
'description' => $entry->description(),
|
||||
'pubDate' => $entry->pubDate(),
|
||||
);
|
||||
// TODO ajouter les champs qui manquent
|
||||
// TODO vérifier que les deux RSS n'aient pas de champs différents
|
||||
}
|
||||
return $entries;
|
||||
}
|
||||
|
||||
// sorting operator
|
||||
function cmpEntries ($a , $b) {
|
||||
$a_time = $a['lastUpdate'];
|
||||
$b_time = $b['lastUpdate'];
|
||||
if ($a_time == $b_time) {
|
||||
return 0;
|
||||
}
|
||||
return ($a_time > $b_time) ? -1 : 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Feed for merge
|
||||
$merged_feed = array (
|
||||
'title' => 'Test merge feed',
|
||||
'link' => 'http://localhost/~nojhan/feed_merge.php',
|
||||
'charset' => 'UTF-8',
|
||||
'entries' => array (),
|
||||
);
|
||||
|
||||
|
||||
$feed1 = loadFeed( "http://www.nojhan.net/geekscottes/rss.php?limit=10" );
|
||||
$feed2 = loadFeed( "http://www.nojhan.net/geekscottes/forum/extern.php?action=new&fid=5&type=rss" );
|
||||
|
||||
$merged_feed['entries'] = array_merge (
|
||||
getEntriesAsArray ($feed1),
|
||||
getEntriesAsArray ($feed2)
|
||||
);
|
||||
|
||||
usort ($merged_feed['entries'], 'cmpEntries');
|
||||
|
||||
// create an object
|
||||
$rssFeedFromArray = Zend_Feed::importArray($merged_feed, 'rss');
|
||||
|
||||
// outut
|
||||
$rssFeedFromArray->send();
|
||||
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue