Flux RSS - plusieurs flux trier par date
loic
-
loic -
loic -
Bonjour,
-L'histoire...
Je suis en train de faire une nouvelle version pour mon site.
Je cherche à faire un affichage des news, sur la page index, en flux rss.
Le site a plusieurs catègories : vidéos, photos, reportages...
A chaque fois que l'on ajoute une vidéo, un reportage... je voudrais que celà s'inscrive dans un flux RSS.
-Ce que je cherche :
Ensuite, sur la page index, il me faut un script qui puisse aller chercher dans plusieurs flux RSS les dernières infos et les mélanger entre eux par date de post... Je suis compréhensible?...
Je ne suis pas expert en flux RSS, j'ai passé ma nuit à essayer de comprendre et à trouver un script potable...Au final j'ai pas trouvé grand chose...
J'ai pris ce script là, et j'aimerais savoir comment le modifier pour qu'il aille chercher plusieurs flux et les trier, à moins que vous ayez un autre script simple à me proposer ..
Le script :
<?php
//
// RSS to HTML webpage script v.1.2
//
// Copyright 2002-2006 ExtraLabs Software
//
// Website: http://www.extralabs.net
// Support: support@extralabs.net
//
// License: Freeware
// This script may be used freely for business or personal use
//
include "./rss_export.php";
// Main Settings
//
// Your RSS feed:
$rss_feed="http://www.legalizeskate.com/web/flux.xml";
// Template for the feed:
$template="sample-template.rat";
// More info about date() function you can find here: https://www.php.net/manual/en/function.date.php
$DateFormat="d M y, h:m:s";
if (isset($_REQUEST["RSSFILE"])) {
$rss_feed = $_REQUEST["RSSFILE"];
}
if (isset($_REQUEST["TEMPLATE"])) {
$template = $_REQUEST["TEMPLATE"];
}
$FeedMaxItems = 5000;
if (isset($_REQUEST["MAXITEMS"])) {
$FeedMaxItems = $_REQUEST["MAXITEMS"];
}
$RandomItems=0;
if (isset($_REQUEST["RANDOM"])) {
$RandomItems = $_REQUEST["RANDOM"];
}
error_reporting(E_ERROR);
$rss = new RSS_export;
$rss->cache_dir = './temp';
$rss->cache_time = 1200;
$from = 1;
$rss->date_format = $DateFormat;
if ($rs = $rss->get($rss_feed))
{
$theData = file($template);
$count = 0;
$from = -1;
foreach($theData as $line)
{
if ((strstr($line,"NOCRLF=")) || (strstr($line,"NAME=")) || (strstr($line,"FILEEXT=")) || (strstr($line,"DATEFORMAT=")) || (strstr($line,"TIMEFORMAT="))) {
$line="";
}
$line=str_replace("%Copyright%", "$rs[copyright]\n", $line);
$line=str_replace("%Copyright%", "", $line);
$line=str_replace("%Language%", "$rs[language]\n", $line);
$line=str_replace("%Language%", "", $line);
$line=str_replace("%Editor%", "$rs[managingEditor]\n", $line);
$line=str_replace("%Editor%", "", $line);
$line=str_replace("%Webmaster%", "$rs[webMaster]\n", $line);
$line=str_replace("%Webmaster%", "", $line);
$line=str_replace("%FeedPubTime%", "$rs[lastBuildDate]\n", $line);
$line=str_replace("%FeedPubTime%", "", $line);
$line=str_replace("%Rating%", "$rs[rating]\n", $line);
$line=str_replace("%Rating%", "", $line);
$line=str_replace("%Docs%", "$rs[docs]\n", $line);
$line=str_replace("%Docs%", "", $line);
$line=str_replace("%FeedTitle%", "$rs[title]\n", $line);
// $line=str_replace("%FeedLink%", "<a href=\"$rs[link]\">$rs[title]</a>\n", $line);
$line=str_replace("%FeedLink%", "$rs[link]\n", $line);
$line=str_replace("%FeedDescription%", $rs[description], $line);
$line=str_replace("<", "<", $line);
$line=str_replace(">", ">", $line);
$line=str_replace(" ", " ", $line);
$line=str_replace(""", " ", $line);
$line=str_replace("©", " ", $line);
$line=str_replace("®", " ", $line);
$line=str_replace("™", " ", $line);
$line=str_replace("€", "?", $line);
$line=str_replace("„", " ", $line);
$line=str_replace("“", " ", $line);
$line=str_replace("«", " ", $line);
$line=str_replace("»", " ", $line);
$line=str_replace("§", " ", $line);
$line=str_replace("&", "&", $line);
$line=str_replace("—", " ", $line);
$line=str_replace("'", "'", $line);
if ($rs['image_url'] != '') {
$line=str_replace("%ImageItem%", "<a href=\"$rs[image_link]\"><img src=\"$rs[image_url]\" alt=\"$rs[image_title]\" vspace=\"1\" border=\"0\" /></a>\n", $line);
}
else {
$line=str_replace("%ImageItem%", "", $line);
}
$count = $count+1;
if (strstr($line,"%BeginItemsRecord%")){
$from = $count;
}
if ($from == -1){ echo $line;}
}
$linecount = 0;
foreach($rs['items'] as $item)
{
if ($RandomItems == 1) {
$seeder = hexdec(substr(md5(microtime()), -8)) & 0x7fffffff;
mt_srand($seeder);
$c=mt_rand(0,1);
if ($c == 0) {
$seeder = hexdec(substr(md5(microtime()), -8)) & 0x7fffffff;
mt_srand($seeder);
continue;
}
}
if ($linecount == $FeedMaxItems) {
break;
}
++$linecount;
$strcount=0;
foreach($theData as $line){
$strcount=$strcount+1;
if ($strcount>=$from){
$line=str_replace("%BeginItemsRecord%", "", $line);
$line=str_replace("%ItemTitle%", $item['title'], $line);
$line=str_replace("%ItemLink%", $item['link'], $line);
$line=str_replace("%ItemDescription%",$item['description'], $line);
$line=str_replace("%ItemPubTime%", $item['pubDate'], $line);
$line=str_replace("%ItemPubTime%", "", $line);
$line=str_replace("%EndItemsRecord%", "", $line);
$line=str_replace("<", "<", $line);
$line=str_replace(">", ">", $line);
$line=str_replace(" ", " ", $line);
$line=str_replace(""", " ", $line);
$line=str_replace("©", " ", $line);
$line=str_replace("®", " ", $line);
$line=str_replace("™", " ", $line);
$line=str_replace("€", "?", $line);
$line=str_replace("„", " ", $line);
$line=str_replace("“", " ", $line);
$line=str_replace("«", " ", $line);
$line=str_replace("»", " ", $line);
$line=str_replace("§", " ", $line);
$line=str_replace("&", "&", $line);
$line=str_replace("—", " ", $line);
$line=str_replace("'", "'", $line);
echo $line; }
}
}
}
else
{
echo "Error: An error occured while parsing RSS file. Please contact with us at: support@extralabs.net\n";
}
?>
-L'histoire...
Je suis en train de faire une nouvelle version pour mon site.
Je cherche à faire un affichage des news, sur la page index, en flux rss.
Le site a plusieurs catègories : vidéos, photos, reportages...
A chaque fois que l'on ajoute une vidéo, un reportage... je voudrais que celà s'inscrive dans un flux RSS.
-Ce que je cherche :
Ensuite, sur la page index, il me faut un script qui puisse aller chercher dans plusieurs flux RSS les dernières infos et les mélanger entre eux par date de post... Je suis compréhensible?...
Je ne suis pas expert en flux RSS, j'ai passé ma nuit à essayer de comprendre et à trouver un script potable...Au final j'ai pas trouvé grand chose...
J'ai pris ce script là, et j'aimerais savoir comment le modifier pour qu'il aille chercher plusieurs flux et les trier, à moins que vous ayez un autre script simple à me proposer ..
Le script :
<?php
//
// RSS to HTML webpage script v.1.2
//
// Copyright 2002-2006 ExtraLabs Software
//
// Website: http://www.extralabs.net
// Support: support@extralabs.net
//
// License: Freeware
// This script may be used freely for business or personal use
//
include "./rss_export.php";
// Main Settings
//
// Your RSS feed:
$rss_feed="http://www.legalizeskate.com/web/flux.xml";
// Template for the feed:
$template="sample-template.rat";
// More info about date() function you can find here: https://www.php.net/manual/en/function.date.php
$DateFormat="d M y, h:m:s";
if (isset($_REQUEST["RSSFILE"])) {
$rss_feed = $_REQUEST["RSSFILE"];
}
if (isset($_REQUEST["TEMPLATE"])) {
$template = $_REQUEST["TEMPLATE"];
}
$FeedMaxItems = 5000;
if (isset($_REQUEST["MAXITEMS"])) {
$FeedMaxItems = $_REQUEST["MAXITEMS"];
}
$RandomItems=0;
if (isset($_REQUEST["RANDOM"])) {
$RandomItems = $_REQUEST["RANDOM"];
}
error_reporting(E_ERROR);
$rss = new RSS_export;
$rss->cache_dir = './temp';
$rss->cache_time = 1200;
$from = 1;
$rss->date_format = $DateFormat;
if ($rs = $rss->get($rss_feed))
{
$theData = file($template);
$count = 0;
$from = -1;
foreach($theData as $line)
{
if ((strstr($line,"NOCRLF=")) || (strstr($line,"NAME=")) || (strstr($line,"FILEEXT=")) || (strstr($line,"DATEFORMAT=")) || (strstr($line,"TIMEFORMAT="))) {
$line="";
}
$line=str_replace("%Copyright%", "$rs[copyright]\n", $line);
$line=str_replace("%Copyright%", "", $line);
$line=str_replace("%Language%", "$rs[language]\n", $line);
$line=str_replace("%Language%", "", $line);
$line=str_replace("%Editor%", "$rs[managingEditor]\n", $line);
$line=str_replace("%Editor%", "", $line);
$line=str_replace("%Webmaster%", "$rs[webMaster]\n", $line);
$line=str_replace("%Webmaster%", "", $line);
$line=str_replace("%FeedPubTime%", "$rs[lastBuildDate]\n", $line);
$line=str_replace("%FeedPubTime%", "", $line);
$line=str_replace("%Rating%", "$rs[rating]\n", $line);
$line=str_replace("%Rating%", "", $line);
$line=str_replace("%Docs%", "$rs[docs]\n", $line);
$line=str_replace("%Docs%", "", $line);
$line=str_replace("%FeedTitle%", "$rs[title]\n", $line);
// $line=str_replace("%FeedLink%", "<a href=\"$rs[link]\">$rs[title]</a>\n", $line);
$line=str_replace("%FeedLink%", "$rs[link]\n", $line);
$line=str_replace("%FeedDescription%", $rs[description], $line);
$line=str_replace("<", "<", $line);
$line=str_replace(">", ">", $line);
$line=str_replace(" ", " ", $line);
$line=str_replace(""", " ", $line);
$line=str_replace("©", " ", $line);
$line=str_replace("®", " ", $line);
$line=str_replace("™", " ", $line);
$line=str_replace("€", "?", $line);
$line=str_replace("„", " ", $line);
$line=str_replace("“", " ", $line);
$line=str_replace("«", " ", $line);
$line=str_replace("»", " ", $line);
$line=str_replace("§", " ", $line);
$line=str_replace("&", "&", $line);
$line=str_replace("—", " ", $line);
$line=str_replace("'", "'", $line);
if ($rs['image_url'] != '') {
$line=str_replace("%ImageItem%", "<a href=\"$rs[image_link]\"><img src=\"$rs[image_url]\" alt=\"$rs[image_title]\" vspace=\"1\" border=\"0\" /></a>\n", $line);
}
else {
$line=str_replace("%ImageItem%", "", $line);
}
$count = $count+1;
if (strstr($line,"%BeginItemsRecord%")){
$from = $count;
}
if ($from == -1){ echo $line;}
}
$linecount = 0;
foreach($rs['items'] as $item)
{
if ($RandomItems == 1) {
$seeder = hexdec(substr(md5(microtime()), -8)) & 0x7fffffff;
mt_srand($seeder);
$c=mt_rand(0,1);
if ($c == 0) {
$seeder = hexdec(substr(md5(microtime()), -8)) & 0x7fffffff;
mt_srand($seeder);
continue;
}
}
if ($linecount == $FeedMaxItems) {
break;
}
++$linecount;
$strcount=0;
foreach($theData as $line){
$strcount=$strcount+1;
if ($strcount>=$from){
$line=str_replace("%BeginItemsRecord%", "", $line);
$line=str_replace("%ItemTitle%", $item['title'], $line);
$line=str_replace("%ItemLink%", $item['link'], $line);
$line=str_replace("%ItemDescription%",$item['description'], $line);
$line=str_replace("%ItemPubTime%", $item['pubDate'], $line);
$line=str_replace("%ItemPubTime%", "", $line);
$line=str_replace("%EndItemsRecord%", "", $line);
$line=str_replace("<", "<", $line);
$line=str_replace(">", ">", $line);
$line=str_replace(" ", " ", $line);
$line=str_replace(""", " ", $line);
$line=str_replace("©", " ", $line);
$line=str_replace("®", " ", $line);
$line=str_replace("™", " ", $line);
$line=str_replace("€", "?", $line);
$line=str_replace("„", " ", $line);
$line=str_replace("“", " ", $line);
$line=str_replace("«", " ", $line);
$line=str_replace("»", " ", $line);
$line=str_replace("§", " ", $line);
$line=str_replace("&", "&", $line);
$line=str_replace("—", " ", $line);
$line=str_replace("'", "'", $line);
echo $line; }
}
}
}
else
{
echo "Error: An error occured while parsing RSS file. Please contact with us at: support@extralabs.net\n";
}
?>
A voir également:
- Flux RSS - plusieurs flux trier par date
- Excel trier par ordre croissant chiffre - Guide
- Tiny tiny rss - Télécharger - Flux RSS
- Logiciel pour trier les photos automatiquement - Guide
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Jm date avis - Forum Consommation & Internet
3 réponses
regarde ici:
http://www.sebsauvage.net/comprendre/rss/creer.html
@+
bg
http://www.sebsauvage.net/comprendre/rss/creer.html
@+
bg
loic
Merci, mais ca ne me montre pas comment afficher plusieurs flux sur une page php