Intégrer plusieurs flux RSS externes à votre site

WRInaute discret
J'ai réalisé 2 petits scripts PHP

le premier permet de récupérer les 10 derniers articles du forum du site optimisé pour le référencement via phpBB SEO.
Démo : http://www.ville-arnieressuriton.com/index.html

le deuxième permet d'afficher les dernières actualités d'un autre site ou d'autres sites qui les fournies au travers d'un flux XML.
Démo : http://www.ville-arnieressuriton.com/De ... rable.html

Comme dans la première solution de WRI, cela se présente sous la forme d'une liste avec le titre de chaque article ainsi qu'un lien vers la version complète de l'article. La différence est que dans ce script, il est possible de concaténer plusieurs flux RSS pour les afficher (et j'utilise SimpleXML pour parser les flux XML).

Si ces scripts intéressent, je peux envisager de faire un tuto sur chacun.

A vous de me le dire :roll:
 
WRInaute discret
Je cherche un script qui permet de classe plusieurs flux par dates
avec un lien qui dirige vers une page de mon site avec l'article complet

avec magiperss je n'arrive pas à faire le classement par dates

Ton deuxième script correspond peut être ?

Merci
 
WRInaute discret
@Bacteries : Tu utilises une BDD derrière ou pas ? Non, je parse les flux XML à la volée.

@climax : Ton deuxième script correspond peut être ?
Oui tout à fait.
Dans la page que je cite, le flux XML affiché dans la page est triée par date de publication (<pubDate>) (du + récent vers + ancien).
 
WRInaute accro
climax a dit:
Je cherche un script qui permet de classe plusieurs flux par dates
avec un lien qui dirige vers une page de mon site avec l'article complet
avec magiperss je n'arrive pas à faire le classement par dates
Merci

stock tes flux en base avec un script externe (tache cron) et en sortie tu fais le trie par date directement dans la requete sql.

++
 
WRInaute discret
@KOogar :
Avec la fonction de tri USORT de PHP => plus simple qu'un stockage en table
Et ainsi pas besoin de stocker les flux vu que je ne prends que les x derniers.

@serval2a :
Une petite explication sur la mise en cache serait la bienvenue :wink:
Comment faire cela sous PHP, des exemples ?
 
WRInaute accro
serval2a a dit:
Et la mise en cache c'est pour les cochons ? :lol:

le rapport avec le sujet stp ?

cnhx a dit:
@KOogar :
Avec la fonction de tri USORT de PHP => plus simple qu'un stockage en table
Et ainsi pas besoin de stocker les flux vu que je ne prends que les x derniers.

je croyais avoir répondu a climax 8) mais vu que tu en parles, ta methode est aussi trés bien :D
 
WRInaute discret
Merci

J'ai trouvé ce topic aussi qui utilise USORT
https://www.webrankinfo.com/forum/t/mixer-des-flux-rss.80542/

Mais cela ne correspond pas à ce que je cherche
car je souhaite utilise un template différent pour chaque flux

J'ai plusieurs templates comme ça et je veux les affichés ensemble trier par dates

<?php
require_once("rss/magpierss/rss_fetch.inc");

function FeedParser2($url_feed, $nb_items_affiches=10)
{
$rss = fetch_rss($url_feed);

if (is_array($rss->items))
{
$items = array_slice($rss->items,
0, $nb_items_affiches);

foreach ($items as $item)
{
$html .= '<div class="rsstitre">';
$html .= '<p><span class="rssdate">';
$html .= date("d/m/y ",strtotime($item["pubdate"]));
$html .= '</span>';
$html .= '<a href="http://www.mon-site-avec la-description-du-flux.php"> - ';
$html .= ''.$item['title'].'</a>';
$html .= '</p></div>';

}

}

return $html;
}
?>
 
WRInaute accro
Tu veux dire que tu as plusieurs flux et que tu aimerais les regrouper pour n'en faire qu'1 trié par date.

Si c'est ca, soit tu construit un tableau multidimensionnel pour y stoker les resultats de tes flux, genre:

Code:
$tab[0]["flux"] = date("d/m/y ",strtotime($item["pubdate"]));
$tab[1]["flux"] = 'http://www.mon-site-avec la-description-du-flux.php>';
$tab[2]["flux"] = ''.$item['title'].'';

ou tu passes par une table sql ce qui a ton niveau me semble simple a faire.

Code:
foreach ($items as $item)
{
$date = date("d/m/y ",strtotime($item["pubdate"]));
$url = 'http://www.mon-site-avec la-description-du-flux.php>';
$titre = ''.$item['title'].'';
}
mysql_query("INSERT INTO table $date,$titre....

ce petit bout de script, tu le fais en tache cron, tous les herbergeurs on ca (planificateurs de taches) et ensuite tu as juste a faire une lecture de ta table ORDER BY date
 
WRInaute discret
Ca ma l'air bien comme solution mais je n'ai pas assez de connaissance pour faire ça :oops:

J'utilise donc plusieurs templates et ensuite pour chacun j'ai ce code sur ma page

Code:
<?php
require_once("rss/magpierss/le-template.php");
echo
FeedParser("http://le-flux.xml", 5);
?>

C'est ce code que je dois changer ?

Je suis novice en programmation :?
 
WRInaute accro
KOogar a dit:
serval2a a dit:
Et la mise en cache c'est pour les cochons ? :lol:
le rapport avec le sujet stp ?
Rho quand même il se voit le rapport non, créer une page à partir de possibles dizaines de flux RSS ne va pas aller sans problème au niveau du processeur du serveur proposant la page, si il y a un certain seuil de trafic puisque le traitement sera fait à chaque fois, et du point de vue des sites "parsés", qui ne verront peut-être pas trop l'utilité de se faire télécharger toutes les x secondes leur flux RSS contre un hypothétique retour en visiteurs. ;)

Sinon pour la fonction de cache je pense que partir de la solution de fandecine peut-être pas mal => https://www.webrankinfo.com/forum/t/script-mise-en-cache-des-pages-php.28614/

@+
 
Discussions similaires
Haut