Créer un flux RSS en php
Hors ligneGlougloute Le 02/05/2006 à 17:23 Profil de Glougloute Configuration de Glougloute

I love VIC
Bonjour à tous !

De plus en plus, je vois sur des sites des logo "RSS", "Atom" etc..

Apres quelques recherches, j'ai appris que ces flux servent à mieux transmettre les informations d'un site à un autre.



J'ai donc cherché sur le net pour creer un flux rss en php.

Puis, j'suis allé sur mon site de PHP préféré, codes-php.net (si si, je vous assure).

Et la, j'étais decu, y'avait rien sur le RSS :(

Sur le net, il y a des tutos en tout genre sur le rss, mais bon, ils datent pour la plupart de 2000, 2001 etc.. mais rien de neuf.



Je voudrais developper un script basique pour générer un flux rss automatiquement grace a des données de ma table SQL.





Voici un exemple de flux rss:

<?xml version="1.0"?>

<rss version="2.0">

     <channel>

          <title>Codes-php</title>

          <link>http://www.codes-php.net</link>

          <description>Site de PHP</description>

          <language>fr</language>

          <copyright></copyright>

          <lastBuildDate>Mon, 1 Sep 2000 11:00:00 GMT</lastBuildDate>

          <webMaster>email@codes-php.net</webMaster>



          <item>

          <description>Premiere chose</description>

          </item>



          <item>

          <description>2eme chose</description>

          </item>



          <item>

          <description>3eme chose</description>

          </item>

     </channel>

<rss/>









En gros, il faudrait faire dans un fichier php :

- recherche dans la base titre, description et la date

- les generer

- et les enregistrer dans un autre fichier xml grace à php.





Je ne connais pas trop la synthaxe des flux rss et ne je ne sais pas comment creer un fichier rss et enregistrer des données dedans grace a php.

Vous avez une idée ? Des scripts déjà fait sur lesquels s'inspirer ? Des tutos récents ?



Merci d'avance.
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 02/05/2006 à 17:50 Profil de Anthony Configuration de Anthony

Fou du volant
Salut,

en fait ne crée pas un fichier RSS, appelle dans ton code un fichier PHP qui lui fera un echo de données, qui formeront un RSS. En gros sur mon site par exemple, lorsque tu demandes un RSS, j'ai un fichier PHP qui génère un RSS à partir d'une base MySQL, ensuite c'est le même principe que pour tout fichier : tu fais un echo.
--

Hors ligneGlougloute Le 02/05/2006 à 17:58 Profil de Glougloute Configuration de Glougloute

I love VIC
Quel est le rss de ton site ?

Merci de ta réponse.
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 02/05/2006 à 19:34 Profil de Anthony Configuration de Anthony

Fou du volant
Il y en a plusieurs, sur le forum ils sont identitiés par une petite icône orangée.
--

Hors ligneGlougloute Le 03/05/2006 à 11:28 Profil de Glougloute Configuration de Glougloute

I love VIC
Re bonjour,
est ce qu'il est possible en php de generer du code avec echo dans un fichier php, et d'enregistrer ce qu'il y a d'écrit dans un fichier externe, par exemple, test.txt, ou encore, test.xml ?

Merci d'avance.
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 03/05/2006 à 12:47 Profil de Anthony Configuration de Anthony

Fou du volant
C'est possible oui, mais c'est inutile de faire ça.
--

Hors ligneGlougloute Le 03/05/2006 à 12:49 Profil de Glougloute Configuration de Glougloute

I love VIC
Dans mon cas, ça serait utile.
Il y a des sites qui acceptent les flux rss, mais seulement si l'extansion du fichier est xml !

Avec Google, j'ai fait un test par exemple sur ma page d'acceuil. Il refuse d'accepter les flux de Vulgarisation informatique :(
--
Je vous aiderai dans la mesure du possible ;)
Hors ligneAnthony Le 03/05/2006 à 12:52 Profil de Anthony Configuration de Anthony

Fou du volant
Tu peux faire de l'url rewriting en simulant un fichier xml qui serait en fait un fichier PHP ;)
--

Hors ligneGlougloute Le 03/05/2006 à 12:54 Profil de Glougloute Configuration de Glougloute

I love VIC
Ca c'est de l'idée :D

J'ai trouvé un script assez difficile à intégrer pour créer toutes sortes de flux.
Adresse du script : http://www.bitfolge.de/rsscreator-en.html
Telecharger le script : http://www.bitfolge.de/download/feedcreator_172.zip

Je mets au point ton astuce et je te dis si ça marche. Merci !

[edit]

J'viens de trouver un site qui répondait à mes attentes :
http://www.excelabo.net/rss/ecrirefluxrss.php

J'ai pris ce script :

<?php
$xml
= '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>MonTitre</title>';
$xml .= '<link>http://www.monsite.net</link>';
$xml .= '<description>Mon Site est le meilleur</description>';
$xml .= '<copyright>© MonSite 2005</copyright>';
$xml .= '<language>fr</language>';
$xml .= '<image>';
$xml .= '     <title>MonSite</title>';
$xml .= '     <url>http://www.MonSite.net/images/MonImage.gif</url>';
$xml .= '     <link>http://www.MonSite.net</link>';
$xml .= '</image>';
$jourdui= date("D, d M Y H:i:s +0100");
//Sat, 23 Apr 2005 00:01:00 +0100
$xml .= '<pubdate>'.$jourdui.'</pubdate>';

require (
'../include/connect.php');
// Vous pouvez soit faire appel à un fichier externe contenant
//toutes les infos de connexion à votre base et table
// ou vous pouvez écrire ici ces infos directement

$res=mysql_query("select * from nouvelles order by date desc limit 0, 10");

// extraction des 10 dernières nouvelles
while($lig=mysql_fetch_array($res)){  
          $titre
=$lig[tag];
          $adresse=$lig[adresse];
          $contenu=$lig[contenu];
          $madate=$lig[date];
          $datephp=date("D, d M Y H:i:s +0100", strtotime($madate));

            $xml .= '<item>';
            $xml .= '<title>'.$titre.'</title>';
            $xml .= '<link>'.$adresse.'</link>';
               $xml .= '<pubDate>'.$datephp.'</pubDate>';
            $xml .= '<description>'.$contenu.'</description>';
            $xml .= '</item>';     
     
}//fin du while

$xml .= '</channel>';
$xml .= '</rss>';
      
$fp
= fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
        
echo 'Export XML effectue !<br><a href="fluxrss.xml">Voir le fichier</a>';
?>



En gros, a chaque fois que mon site est mis à jour, le flux se met à jour par la meme occasion. Ca économise des ressources, puisque je fais qu'une seule requete à chaque fois au lieu de faire une requete à chaque fois qu'un utilisateur rafraichit la page :D

Je pense qu'un tuto tiré de ce site pourrait rendre service à beaucoup de gens !
--
Je vous aiderai dans la mesure du possible ;)
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels