date (true) - $entry1->date (true); } function sortReverseEntriesByDate ($entry1, $entry2) { return $entry1->date (true) - $entry2->date (true); } function get_domain ($url) { return parse_url($url, PHP_URL_HOST); } function opml_export ($cats) { $txt = ''; foreach ($cats as $cat) { $txt .= '' . "\n"; foreach ($cat['feeds'] as $feed) { $txt .= "\t" . '' . "\n"; } $txt .= '' . "\n"; } return $txt; } function cleanText ($text) { return preg_replace ('/&[\w]+;/', '', $text); } function opml_import ($xml) { $opml = @simplexml_load_string ($xml); if (!$opml) { return array (array (), array ()); } $categories = array (); $feeds = array (); foreach ($opml->body->outline as $outline) { if (!isset ($outline['xmlUrl'])) { // Catégorie $title = ''; if (isset ($outline['text'])) { $title = (string) $outline['text']; } elseif (isset ($outline['title'])) { $title = (string) $outline['title']; } if ($title) { $cat = new Category ($title); $categories[] = $cat; $feeds = array_merge ($feeds, getFeedsOutline ($outline, $cat->id ())); } } else { // Flux rss $feeds[] = getFeed ($outline, ''); } } return array ($categories, $feeds); } /** * import all feeds of a given outline tag */ function getFeedsOutline ($outline, $cat_id) { $feeds = array (); foreach ($outline->children () as $child) { if (isset ($child['xmlUrl'])) { $feeds[] = getFeed ($child, $cat_id); } else { $feeds = array_merge( $feeds, getFeedsOutline ($child, $cat_id) ); } } return $feeds; } function getFeed ($outline, $cat_id) { $url = (string) $outline['xmlUrl']; $feed = new Feed ($url); $feed->_category ($cat_id); return $feed; }