Exemple simple de génération de flux rss

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 097 fois - Téléchargée 32 fois

Contenu du snippet

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 / Exemple :


<?
$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("<","<",$news);
$news       = str_replace(">",">",$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___)

A voir également

Ajouter un commentaire

Commentaires

Messages postés
20
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
20 mars 2006

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 ?
Messages postés
20
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
20 mars 2006

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.
Messages postés
20
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
20 mars 2006

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.
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4
Je ne comprends pas bien de quelle URL vous parlez.

Romelard Fabrice.
Messages postés
20
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
20 mars 2006

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 ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.