Mixer des flux RSS

Bonjour,

vous connaissez sans doute ces services:
- xfruits ( http://www.xfruits.com/?lg=fr )
- rss mixer ( http://www.rssmixer.com/ )
- http://feedjumbler.com/
- http://feeddigest.com/

aussi je ne voudrais pas devenir dépendant de ces services. Il suffirait que l'un tombe en panne pour devoir refaire fissa chez un autre..

En utilisant Simplepie, es-ce possible d'arriver au même résultat en local?
Couplé à une tâche cron, qui irait vérifier les maj toutes les demies-heures par exemple. On peut ainsi maitriser totalement son flux mixé, en pouvant par exemple émettre différents formats de sortie.

Cela existe-il déjà?

++
 
Babos a dit:
Pourquoi ne pas utiliser Magpie Rss ?
parce que j'ai pas envie :p
nan sérieusement, simplepie a un développement actif et je l'utilise déjà dans quelques autres scripts

Babos a dit:
Tu peux voir le résultat ici -http://www.footmanager.net/actufoot/
sauf que là ya rien de mixé..
Je veux un seul flux rss unique à la sortie, mais avec différents sources différentes. Et c'est pour afficher dans un petit encart de news avec effet défilant :)
 
je pensse que c 'est possible en faissant un cron qui passe tous les jour pour verifié la date de publication du dernier article recuperé sur chaque flux que tu posséde mais y doit avoir un autre moyen plus simple :!:
 
je me permet de remonter se poste car je suis tombe sur un article qui aideras surement les personne qui veulent mixer des flux avec magpierss et les affiche par date :D
Code:
<?php

define('MAX_ITEMS', 20);

require_once('magpierss/rss_fetch.inc');

$urls = array(
    'http://example.com/atom/',
    'http://example.com/rss.xml',
    'http://example.com/links/index.xml'
);

$items = array();

// loop thru all urls & merge feeds into master array
foreach ( $urls as $url ) {
    $rss = fetch_rss($url);
    if (!$rss) continue;
    $items = array_merge($items, $rss->items);
}

// sort all items in array by date
usort($items, 'date_cmp');

// generate ouput array
$out = array();

foreach ($items as $item) {
    $href    = $item['link'];
    $title    = $item['title'];
    $out[] = '<li><a href="'.$href.'" title="'.$title.'">'.$title.'</a></li>';
}

if (count($out) > MAX_ITEMS)
    $out = array_slice($out,0,MAX_ITEMS);

echo ($out) 
    ? "<ul>\n".join("\n",$out)."\n</ul>"
    : '';


// sorts feed array based on published date (used with usort)
// -------------------------------------------------------------
    function date_cmp($a, $b) 
    {
        $atime = (empty($a['date_timestamp']))
            ? strtotime($a['dc']['date'])
            : $a['date_timestamp'];

        $btime = (empty($b['date_timestamp']))
            ? strtotime($b['dc']['date'])
            : $b['date_timestamp'];

        if ($atime == $btime)
            return 0;
    
        return ($atime > $btime) ? -1 : 1;
    }

?>
voila
maintenant il me reste plus qu'a trouve une solution pour suprimer les flux en double array_unique devrait faire l'affaire mais j'arrive pas a le metre en place :?
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut