Aller au contenu

Flux RSS sur mon site!


Fab23

Messages recommandés

PHP et RSS sont 2 choses distinctes ...

PHP est le langage serveur, qui permet de traiter plein de choses, comme des bases de données (mysql) et des documents xml, à travers les fontions xml

RSS, c'est le document qui reprend les news, les textes du site, selon le paramètrage du cms (souvent) ...

Lien vers le commentaire
Partager sur d’autres sites

PHP et RSS sont 2 choses distinctes ...

PHP est le langage serveur, qui permet de traiter plein de choses, comme des bases de données (mysql) et des documents xml, à travers les fontions xml

RSS, c'est le document qui reprend les news, les textes du site, selon le paramètrage du cms (souvent) ...

Merci pour le tuto, je vais essayer...

@ Agonistic, merci de m'expliquer le PHP :incline: mais je passe un exame dans une semaine sur le PHP alors je te promet que je sais ce que s'est :incline: :incline:

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

je cherche depuis quelques temps à créer un fil RSS pour un site, mais impossible de trouver comment en faire un "dynamique".

Je m'explique, tous les tutoriaux que je trouve me montre comment en créer un à mettre à jour manuellement. Moi, j'aimerais que lorsque sur le site je poste une news (système en PHP), le fil RSS soit mis automatiquement à jour. Est-ce possible ?

Lien vers le commentaire
Partager sur d’autres sites

EpiDress> si tu utilises un système de cache, ou si le flux est mise en cache, tu peux vérifier sa date de modification via filemtime, et si la date de la dernière news est supérieure à la date de modification du fichier ordonner la recréation de la cache.

Création du cache? Sur le srv?

mais avec "filemtime" ça va prendre la dernière modif de la page ou bien?

Lien vers le commentaire
Partager sur d’autres sites

Suppose que ta dernière news ait pour date X (au format renvoyé par time(), ie: des timestamps unix).

Tu vas comparer la date maximale :

$X = (SELECT MAX(news_date) FROM news) (on va dire que tu as fait un mysql_query, et tout le basar associé)

avec celle du fichier cache : (le fichier doit exister de base, mais bon)

$Y = filemtime('rss.xml');

Puis, si tu as :

if ( $X > $Y ) {
 ob_start();
 /* écriture du flux XML en fonction de tes besoins */
 $length = ob_get_length();
 $content = ob_get_flush();
 /* sauvegarde le contenu des echo, et envoie ça au navigateur (évite de rouvrir le fichier ou taper echo $content) */

 /* sauvegarde, et mise à jour de la date de modif */
 if ( ($f = @fopen('rss.xml', 'wb')) ) {
fwrite($f, $content, $length);
fclose($f);
touch('rss.xml', $X);
 }
/* affiche le fichier existant */
} else echo file_get_contents('rss.xml');

Voilà grosso modo comment tu peux gérer la case.

Note bien que là, tu fais deux opérations lourdes :

SELEXT MAX(...)

filemtime()

La première est lourde si la table n'est pas indexée au moins sur le champ DATE (ce qui veut dire pas de B Tree derrière => recherche linéaire)

La seconde est lourde car récupérer des informations sur un fichier n'est jamais bien rapide.

Au sens lourd, j'entend au niveau de php/mysql.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...