begin process at 2008 07 25 12:52:36
1 216 226 membres
190 nouveaux aujourd'hui
14 180 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXEMPLE SIMPLE DE GÉNÉRATION DE FLUX RSS


Information sur la source



Description

Dans le même esprit que le code :
- http://www.aspfr.com/code.aspx?ID=25633

Voici un exemple simple de génération de flux RSS depuis une table simple contenant les informations suivantes :
- ID : Id de la nouvelle en cours
- AUTEUR : Auteur de la nouvelle en cours
- DATENEWS : Date de la nouvelle en cours
- MESSAGE : Message de la nouvelle

Source

  • <?
  • $dbhost = "VotreServeurMySQL";
  • $dblogi = "VotreLogin";
  • $dbpass = "VotrePassWord";
  • $dbbase = "VotreBase";
  • $db = @mysql_connect("$dbhost", "$dblogi", "$dbpass") OR DIE("Désolé, la Base est Down !");
  • @mysql_select_db("$dbbase",$db) OR DIE;
  • $query = "SELECT * FROM NOUVELLES ORDER BY DATENEWS DESC";
  • $result = mysql_query ($query) or die("La requette a échouée : ".mysql_error());
  • $nb_msg = mysql_num_rows($result);
  • header("Content-Type: text/xml");
  • $xml = '<'.'?xml version="1.0" encoding="UTF-8"?'.'><rss version="2.0"><channel>';
  • $xml .='<title>Exemple de flux RSS en PHP</title>';
  • $xml .='<link>http://www.phpcs.com</link>';
  • $xml .='<description>Les dernières nouvelles</description>';
  • $xml .='<managingEditor>adressemail@fournisseur.com</managingEditor>';
  • $xml .='<language>fr</language>';
  • $xml .='<generator>PHPCS</generator>';
  • $xml .='<copyright>PHPCS</copyright>';
  • $xml .='<webMaster>PHPCS Webmaster</webMaster>';
  • while ($msg_data = mysql_fetch_array($result))
  • {
  • $id = $msg_data['ID'];
  • $titre = $msg_data['AUTEUR']." - Nouvelle Du Site";
  • $news = stripslashes(trim($msg_data['MESSAGE']));
  • $news = str_replace("<BR>",'<BR/>',$news);
  • $news = str_replace("&",'&amp;',$news);
  • $news = str_replace("<","&lt;",$news);
  • $news = str_replace(">","&gt;",$news);
  • $xml .='<item>';
  • $xml .='<author>'.$msg_data['AUTEUR'].'</author>';
  • $xml .='<title>'.$titre.'</title>';
  • $xml .='<link>http://VotreSiteWeb/VotrePagedeLecture.php?ValeurID='.$id.'</link>';
  • $xml .='<pubDate>'.$msg_data['DATENEWS'].' GMT</pubDate>';
  • $xml .='<guid>http://VotreSiteWeb/VotrePagedeLecture.php?ValeurID='.$id.'</guid>';
  • $xml .='<comments>http://VotreSiteWeb/VotrePagedeLecture.php?ValeurID='.$id.'</comments>';
  • $xml .='<description>';
  • $xml .= $news;
  • $xml .='</description></item>';
  • }
  • mysql_close();
  • $xml .='</channel></rss>';
  • echo $xml;
  • ?>
<?
$dbhost = "VotreServeurMySQL";
$dblogi = "VotreLogin";
$dbpass = "VotrePassWord";
$dbbase = "VotreBase";

$db = @mysql_connect("$dbhost", "$dblogi", "$dbpass") OR DIE("Désolé, la Base est Down !");
@mysql_select_db("$dbbase",$db) OR DIE;

$query = "SELECT * FROM NOUVELLES ORDER BY DATENEWS DESC";
$result = mysql_query ($query) or die("La requette a échouée : ".mysql_error());
$nb_msg = mysql_num_rows($result);

header("Content-Type: text/xml");

$xml = '<'.'?xml version="1.0" encoding="UTF-8"?'.'><rss version="2.0"><channel>';

$xml .='<title>Exemple de flux RSS en PHP</title>';
$xml .='<link>http://www.phpcs.com</link>';
$xml .='<description>Les dernières nouvelles</description>';
$xml .='<managingEditor>adressemail@fournisseur.com</managingEditor>';
$xml .='<language>fr</language>';
$xml .='<generator>PHPCS</generator>';
$xml .='<copyright>PHPCS</copyright>';
$xml .='<webMaster>PHPCS Webmaster</webMaster>';

while ($msg_data = mysql_fetch_array($result))
{
$id           = $msg_data['ID'];

$titre        = $msg_data['AUTEUR']." - Nouvelle Du Site";
$news       = stripslashes(trim($msg_data['MESSAGE']));
$news       = str_replace("<BR>",'<BR/>',$news);
$news       = str_replace("&",'&amp;',$news);
$news       = str_replace("<","&lt;",$news);
$news       = str_replace(">","&gt;",$news);

$xml .='<item>';
$xml .='<author>'.$msg_data['AUTEUR'].'</author>';
$xml .='<title>'.$titre.'</title>';
$xml .='<link>http://VotreSiteWeb/VotrePagedeLecture.php?ValeurID='.$id.'</link>';
$xml .='<pubDate>'.$msg_data['DATENEWS'].' GMT</pubDate>';
$xml .='<guid>http://VotreSiteWeb/VotrePagedeLecture.php?ValeurID='.$id.'</guid>';
$xml .='<comments>http://VotreSiteWeb/VotrePagedeLecture.php?ValeurID='.$id.'</comments>';
$xml .='<description>';

$xml .= $news; 

$xml .='</description></item>';
}

mysql_close();

$xml .='</channel></rss>';

echo $xml;

?>

Conclusion

Bon coding

Romelard Fabrice (Alias F___)
  • signaler à un administrateur
    Commentaire de Masterfight le 24/06/2005 13:47:22

    Salut

    Ca marche presque.
    J'ai un bon retour du fichier rss, mais je n'arrive pas à faire pointer vers la bonne url.

    Un petit coup de main ?

  • signaler à un administrateur
    Commentaire de fabrice69 le 24/06/2005 14:01:29 administrateur CS

    Je ne comprends pas bien de quelle URL vous parlez.

    Romelard Fabrice.

  • signaler à un administrateur
    Commentaire de Masterfight le 24/06/2005 14:10:18

    Bonjour

    Si vous prenez l'exemple de mon fichier www.voduong.free.fr/rss2.php
    Ma table contient bien un champ ID, la boucle se fait, mais aucune info ne s'affiche.

    Le code fait mention du "link":
    <link>http://www.voduong.free.fr/index.php?ValeurID='.$id.'</link>
    mais la page qui s'affiche n'est que la homepage du site.

  • signaler à un administrateur
    Commentaire de Masterfight le 25/06/2005 02:49:01

    Le problème est résolu. Il ne faut pas oublier que la casse est importante.

    $msg_data['AUTEUR']
    $msg_data['auteur']

    ne sont pas équivalent
    OK c'est peut-être la base, mais ça fait pas de mal de le rappeler.

  • signaler à un administrateur
    Commentaire de Masterfight le 02/03/2006 10:39:47

    Ca fait un bail que je tourne avec ce script, mais je me suis rendu compte il y a peu qu'il n'était pas bien reconnu partout comme étant un flux rss valide.
    Thunderbird par exemple, ne fais la mise à jour automatique.
    Ce type de rss ne gère pas les accentuations ou la mise forme.
    Y a-t-il moyen de régler ces petits soucis ?

Ajouter un commentaire

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS