Creer un flux RSS sur son site

Répondre
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Creer un flux RSS sur son site

Message par pat46fr »

Bonjour, suite à une discussion sur le forum, je me suis penché sur la possibilité de créer un flux RSS contenant les données météo. Ctmoi a donné une solution pour exporter directement de GW ici:http://www.aguilmard.com/phpBB3/viewtop ... &sk=t&sd=a
Pour ma part, vu que j'utilise MySQL j'ai fait un petit script php qui crée le fichier xml nécessaire au flux à partir de la bdd. Je vous le donne au cas où ça intéresserait quelqu'un. :)

Code : Tout sélectionner

<?php
// édition du début du fichier XML pour les données
require("WS3650/_meteo.php");
date_default_timezone_set('Europe/Paris');

// L'entête du fichier
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>'; 
$xml .= '<title>Données météo</title>';
$xml .= '<link>http://www.vers-sur-lot.fr/meteo/meteo.php</link>';
$xml .= '<description>Météo Vers </description>';

// connexion a la base
include("connect_meteo.php");

@mysql_connect($adresse,$nom,$motdepasse) or die("Connexion impossible");
@mysql_select_db("db_meteo") or die("Echec de selection de la base");

// On récupère le dernier enregistrement

$repmax = "SELECT MAX(`dateUNIX`) AS maxi FROM Base2010"; //la date maxi sera la maxi de la derniere table
			$reqmax = mysql_query($repmax) or die('Erreur : '.mysql_error());
			$datemax = mysql_fetch_assoc($reqmax);
			$TsMax = $datemax['maxi'];
			
$reponse = mysql_query ("SELECT * FROM $Base where dateUNIX=$TsMax") or die('Erreur SQL !'.$reponse.'<br>'.mysql_error()); 
$rs = mysql_fetch_array($reponse);

// extraction des informations   
	$TsUnix=$rs[0]; $datejour = date('d/m/Y à H:i',$TsUnix);
	$TempOut=$rs[11];	$RelPress = $rs[3];
	$Pluie=$rs[9];	$vent=$rs[7];
	
//rajout au contenu du xml
$xml .= '<item>';
$xml .= '<title>Le: '.$datejour.' Temp: '.$TempOut.'°C</title>';
$xml .= '<link>http://www.vers-sur-lot.fr/meteo/meteo.php</link>';
$xml .= '<description></description>';
$xml .= '</item>';	

	$xml .= '<item>';
	$xml .= '<title>Pression: '.$RelPress.' Hpa</title>';
	$xml .= '<link>http://www.vers-sur-lot.fr/meteo/meteo.php</link>';
	$xml .= '<description></description>';
	$xml .= '</item>';	
	
	$xml .= '<item>';
	$xml .= '<title>Pluie: '.$Pluie.' mm</title>';
	$xml .= '<link>http://www.vers-sur-lot.fr/meteo/meteo.php</link>';
	$xml .= '<description></description>';
	$xml .= '</item>';	
	
	$xml .= '<item>';
	$xml .= '<title>Vent: '.$vent.' Km/h</title>';
	$xml .= '<link>http://www.vers-sur-lot.fr/meteo/meteo.php</link>';
	$xml .= '<description></description>';
	$xml .= '</item>';	

// édition de la fin du fichier XML
$xml .= '</channel>';
$xml .= '</rss>';

// écriture dans le fichier
$fp = fopen("/home/verssurl/public_html/meteo/fluxdonnees.xml", 'w+');
//$fp = fopen("flux2.txt", 'w+');

fputs($fp, $xml);
fclose($fp);
@mysql_close();

?>
Ensuite il n'y a plus qu'à mettre un appel au flux sur votre page (dans la section [head]) de cette façon:
<link rel="alternate" type="application/rss+xml" href="http://www.vers-sur-lot.fr/meteo/fluxalerte.xml" title="Alertes météo">

Ce fichier n'a plus qu'à s'exécuter à intervalles réguliers et le tour est joué.

Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Répondre