Créer un flux RSS ?

Discussion dans 'Web, design' créé par kaRma, 25 Septembre 2006.

Statut de la discussion:
Fermée.
  1. Offline
    kaRma Drink Fast Corp.
    Jvoulais savoir si qqun serait capable de me dire comment je pourrais générer un flux rss en fonction des articles posté sur un site que je suis entrain de faire avec Xyo (pour ceux qui connaissent)


    Comment ca fonctionne ? :eek:
    Methode particuliere a utiliser ?
    Des programmes a conseiller ?


    J ai trouvé ca : http://sebsauvage.net/comprendre/rss/creer.html
    Mais ca me parle pas vraiment (chuis pas des masses en forme auj. faut dire -_-)


    EDIT : Ok j'ai trouvé autre chose de plus parlant :

    http://www.excelabo.net/rss/ecrirefluxrss.php


    Je laisse le sujet ouvert pour ceux qui voudraient rajouter qqchose :proud:
    kaRma, 25 Septembre 2006
    #1
  2. Offline
    zemicmic Elite
    Je voudrais essayer, mais j'ai du mal a recup depuis une Db.

    t'as reussi de ton coté ?
    zemicmic, 27 Septembre 2006
    #2
  3. Offline
    guslinux Gamerz'ien
    Je me suis déja documenté un peu là dessu, et voici ce que j'en ai déduit.

    Si on reprend depuis le début, le RSS c'est ce qui doit remplacer les serveurs de news. Le RSS ne donne qu'un "résumé" de l'article, et renvoie vers une page web. En gros, tu as la partie RSS qui averti l'arrivée d'une nouvelle news, sans pour autant la contenir. La news est présente sur le serveur distant.

    Il faut noter que le fichier RSS est conforme aux normes XML.

    Prenons l'exemple de http://sebsauvage.net/comprendre/rss/creer.html :
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <rss version="2.0">
        <channel>
       
            <title>Mon site web</title>
            <link>http://monsiteweb.com</link>
            <description>Les news de mon site web</description>
           
            <item>
                <title>Un site web pour partager ses signets</title>
                <link>http://del.icio.us</link>
                <guid isPermaLink="true">http://del.icio.us</guid>
                <description>Le site http://del.icio.us permet de partager vos signets et d'y accéder où que vous soyez.</description>
                <pubDate>Wed, 5 Aug 2005 19:30:00 GMT</pubDate>
            </item>
           
            <item>
                <title>Enfin un flux RSS !</title>
                <link>http://monsiteweb.com/rss.html</link>
                <guid isPermaLink="true">http://monsiteweb.com/rss.html</guid>
                <description>Un flux RSS a été installé sur mon site. Vous pouvez le consulter avec votre logiciel favori.</description>
                <pubDate>Wed, 3 Aug 2005 15:17:00 GMT</pubDate>
            </item>
           
        </channel>
    </rss>
    
    On voit donc que dans le rss, on défini un canal (channel). Ce canal a un titre, une description et un site web de référence.

    Ensuite, vient les news (item), chaque news a un titre, une description, une date de publication et un lien qui contiend toute la news.

    Donc, si on part de ce principe, pour créer un flux rss, ils suffit de créer un script php qui va faire ce fichier xml. N'oublions pas que un XML c'est jamais qu'un fichier txt qui contiend des informations formatées au format XML.

    J'espere que ca a pu vous éclairer :-D
    guslinux, 27 Septembre 2006
    #3
  4. Offline
    Jereck Procrastinateur
    Equipe GamerZ.be
    Code:
    <?php
     
    $domain = http://www.truc.machin/chose/;
    //datepubli : bigint(20) --> timestamp
    //titre : varchar
    //description : varchar
    //id : tinyint(3)
    
    // SELECT $id as id, $titre as titre, $description as description, $datepubli as datepubli FROM $table ORDER BY datepubli DESC LIMIT 0,$numb
    /***************************************************\
     void gen_RSS(string $rss)
     -Reçoit : $table   Le nom de la table utilisée
    	$id	Le nom du champ ID de la table $table
    	$titre   Le nom du champ TITRE de la table $table
    	$description Le nom du champ DESCRIPTION de la table $table
    	$datepubli  Le nom du champ DATEPUBLI de la table $table
    	$numb   Le nombre d'éléments à affcher dans le RSS
    	$name   Le titre du Flux
    	$rss   Le nom du fichier RSS à créér
     -Retourne : rien
    \***************************************************/
    function gen_RSS($table, $id, $titre, $description, $datepubli, $numb, $name, $rss) {
      // En-tête du flux RSS version 2.0
     $xml  = '<?xml version="1.0" encoding="ISO-8859-1"?>' . chr(13) . '<?xml-stylesheet type="text/xsl" href="rsspretty.xsl" version="1.0"?>' . chr(13);
     $xml .= '<rss version="2.0">' . chr(13);
     $xml .= chr(9) . '<channel>' . chr(13);
     $xml .= chr(9) . chr(9) . '<title>'.$name.'</title>' . chr(13);
     $xml .= chr(9) . chr(9) . '<link>'.$domain.'</link>' . chr(13);
     $xml .= chr(9) . chr(9) . '<description>Description du flux</description>' . chr(13);
     $xml .= chr(9) . chr(9) . '<language>fr-be</language>' . chr(13);
     $xml .= chr(9) . chr(9) . '<copyright>Copyright  du flux</copyright>' . chr(13);
      // Ajout de la date actuelle de publication (suivant la DTD RSS)
     $xml .= chr(9) . chr(9) . '<lastBuildDate>'.date("r",time()).'</lastBuildDate>' . chr(13); 
    
      // En-tête suite et fin
     $xml .= chr(9) . chr(9) . '<docs>http://www.stervinou.com/projets/rss/</docs>' . chr(13);
     $xml .= chr(9) . chr(9) . '<webMaster>webmaster@truc.machin</webMaster>' . chr(13);
     $xml .= chr(9) . chr(9) . '<ttl>20</ttl>' . chr(13);
     $xml .= chr(9) . chr(9) . '<image>' . chr(13);
     $xml .= chr(9) . chr(9) . chr(9) . '<title>Titre de l'image</title>' . chr(13);
     $xml .= chr(9) . chr(9) . chr(9) . '<url>Adresse de l'image</url>' . chr(13);
     $xml .= chr(9) . chr(9) . chr(9) . '<link>http://'.$domain.'</link>' . chr(13);
     $xml .= chr(9) . chr(9) . '</image>' . chr(13);
    
      // Sélection des x dernières news triées de la plus récente à la plus ancienne
     $Result = mysql_exec("SELECT $id as id, $titre as titre, $description as description, $datepubli as datepubli FROM $table ORDER BY datepubli DESC LIMIT 0,$numb");
    
      // Creation des items : titre + lien + description + date de publication
     while($val=mysql_fetch_array($Result)) {
      $xml .= chr(9) . chr(9) . '<item>' . chr(13);
      $xml .= chr(9) . chr(9) . chr(9) . '<title>'.htmlspecialchars ($val["titre"]).'</title>' . chr(13);
      $xml .= chr(9) . chr(9) . chr(9) . '<link>http://'.$domain.'?news.php&amp;id='.$val["id"].'</link>' . chr(13);
      $xml .= chr(9) . chr(9) . chr(9) . '<description>'.htmlspecialchars ($val["description"]).'</description>' . chr(13);
      $xml .= chr(9) . chr(9) . chr(9) . '<pubDate>'.date("r",$val["datepubli"]).'</pubDate>' . chr(13);
      $xml .= chr(9) . chr(9) . chr(9) . '</item>' . chr(13);
     }
    
      // Fin du flux
     $xml .= chr(9) . '</channel>' . chr(13);
     $xml .= '</rss>' . chr(13);
    
      // Ecriture du flux dans un fichier xml
     $fp = fopen("rss/".$rss.".xml", 'w+');
    	fwrite($fp, $xml);
     fclose($fp);
    }
    ?>
    Jereck, 27 Septembre 2006
    #4
  5. Offline
    PiaFlalCoOl NiuAge
    Je sens que ca pourra bien me servir pour mon futur site :D
    PiaFlalCoOl, 11 Octobre 2006
    #5
Statut de la discussion:
Fermée.