Vous avez envie de proposer à vos internautes d'avoir accès à un Flux RSS ? Voici un petit tuto qui vous montrera comment réaliser ça en PHP !
- rss.php :
<?php
header('Content-Type: application/rss+xml');
$bdd = new PDO('mysql:host=127.0.0.1;dbname=flux_rss;charset=utf8','root','');
$articles = $bdd->query('SELECT * FROM articles ORDER BY date_time_post DESC LIMIT 0,25');
$lastBuildDate = $bdd->query('SELECT date_time_post FROM articles ORDER BY date_time_post DESC LIMIT 0,1');
$lastBuildDate = $lastBuildDate->fetch()['date_time_post'];
?>
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Example.org</title>
<description>Ceci est un exemple de flux RSS 2.0</description>
<lastBuildDate><?= date(DATE_RSS, strtotime($lastBuildDate)) ?></lastBuildDate>
<link>http://www.example.org</link>
<?php while($a = $articles->fetch()) { ?>
<item>
<title><?= $a['titre'] ?></title>
<description><?= substr($a['contenu'], 0, 1000).'...' ?></description>
<pubDate><?= date(DATE_RSS, strtotime($a['date_time_post'])) ?></pubDate>
<link>http://www.example.org/?id=<?= $a['id'] ?></link>
<image>
<url>http://www.example.org/miniatures/<?= $a['id'] ?>.jpg</url>
<link>http://www.example.org/?id=<?= $a['id'] ?></link>
</image>
</item>
<?php } ?>
</channel>
</rss>
- .htaccess (si vous souhaitez remplacer rss.php par rss.xml dans l'URL) :
RewriteEngine on
RewriteRule ^rss.xml$ /chemin/vers/rss.php [L]
Le chemin vers le fichier rss.php doit se faire après le 127.0.0.1. Par exemple, si rss.php est dans le dossier "test" puis "rss", vous écrirez /test/rss/rss.php. Vérifiez également que mod_rewrite soit bien actif dans vos modules Apache, et évitez les espaces dans les noms de fichiers et dossiers qui pourraient faire bugger la réécriture d'URL 😉
Votre commentaire