// Comment insérer un flux XML sur mon site internet ?

Les flux XML sont des sortes de bases de données sous forme d'un fichier texte avec une norme d'écriture commune.
Il existe toute une série de logiciels qui permettent de les utiliser mais ce qui nous intéresse plus particulièrement ici est de les utiliser dans une page web.

 

Utilisation basique

Pour une utilisation basique et pour des sites de petite taille (avec peu de visiteurs), une solution basique s'offre à vous.
Son avantage est qu'elle est très facile à mettre en place. Son inconvénient est qu'elle n'est pas très douce avec les ressources du serveur d'hébergement (ni très douce avec les serveurs de Clubic).
En effet, elle va chercher les informations à chaque chargement de la page, ce qui n'est pas sans provoquer des ralentissements aux heures d'affluence.

Voici un exemple de code utilisable pour une telle insertion :

<?php
# Configuration

$fichier_xml = "http://www.clubic.com/articles.rss"; # Placez ici l'adresse du flux
$nombre_limite = 20; # Nombre maximum d'éléments à afficher

# Affichage du Flux
$raw = file_get_contents($fichier_xml);
if ($raw) {
if(eregi("<item>(.*)</item>",$raw,$rawitems)){
$items = explode("<item>", $rawitems[0]);
$nb = count($items);
$maximum = (($nb-1) < $nombre_limite) ? ($nb-1) : $nombre_limite;

for ($i=0;$i<$maximum;$i++) {
eregi("<title>(.*)</title>",$items[$i+1], $title);
eregi("<link>(.*)</link>",$items[$i+1], $link);
echo "- <a href=\"".$link[1]."\" target=\"_blank\">".$title[1]."</a><br />";

}
}
}
?>

Comme vous pouvez le remarquer, nous n'affichons que le titre et nous passons outre la date et d'autres renseignements utilisables. Vous pouvez bien évidemment modifier ce script pour l'adapter à ce que vous souhaitez afficher.

Cela donne le résultat ci dessous avec notre flux Actu:

- Infos US de la nuit : Google développe son propre casque de réalité virtuelle
- [DailyDownload] ReadIris : conversion, OCR et édition de documents
- 4K et framerate déverrouillé pour Need For Speed sur PC dès le 17 mars
- Assassin's Creed : pas de nouvel épisode fin 2016 pour la franchise d'Ubisoft
- Test du Honor 5X : la bonne affaire des smartphones 5,5 pouces
- Test du Honor 5X : la meilleure affaire en smartphone 5,5 pouces ?
- Des ondes gravitationnelles ont bien été détectées
- Arrow Smart Kart : un kart connecté à vous faire retourner en enfance
- Remaniement : Fleur Pellerin écartée au profit d'Audrey Azoulay
- Quantum Break sortira également sur PC le 5 avril, et s'offre des bonus de précommande sur Xbox One
- Bon plan du jour : le SSD Samsung 850 Evo 1 To à 284€ au lieu de 320
- Orange 4G Cam : une GoPro pour diffuser en direct
- Plus de 1000 jeux pour Windows 3.1 désormais disponibles dans le navigateur
- Microsoft signe avec Acer pour préinstaller ses apps mobiles
- Tesla vend bien, et serait sur la bonne voie
- Pixmania honorera les commandes des clients
- Clients Bouygues Telecom, débit réduit ou hors forfait pour votre internet ?
- Fusion nucléaire : la Chine maintient un plasma à 50 millions de degrés durant une minute
- IGN propose de voyager dans le temps à travers ses cartes et photos de la France
- Tuto Steam : activation et bénéfices du client bêta

Cela donne le résultat ci dessous avec notre flux logiciel :

- [DailyDownload] ReadIris : conversion, OCR et édition de documents
- Quantum Break sortira également sur PC le 5 avril, et s'offre des bonus de précommande sur Xbox One
- Microsoft a racheté Groove pour son service de musique en streaming
- [DailyDownload] Acoustica : logiciel gratuit d'enregistrement, édition, mixage et mastering audio
- Paul McCartney a composé de la musique... pour des émoticônes Skype
- LibreOffice 5.1.0 : Cloud, optimisations et (très) légères modifications de l'interface
- BitTorrent lance son protocole de streaming en P2P avec une app pour iOS, TvOS et Android
- Google renforce la sécurité de Gmail
- [DailyDownload] Otter Browser : le meilleur d'Opera dans un navigateur libre et léger
- Amazon lance son moteur de jeu vidéo Lumberyard
- Upday : la réponse de Samsung à Apple News
- Pour Ubuntu Phone, Canonical courtise les constructeurs de smartphones Android
- Les chinois Qihoo 360 et Kunlun rachètent Opera Software (maj)
- Messagerie : l'anonymat de Kik discrédité par une série de crimes
- [DailyDownload] Pencil Project : logiciel libre de conception d'interfaces d'applications
- La Poste proposera bientôt du Wi-Fi gratuit dans 750 de ses bureaux
- Pirate Bay se transforme en plate-forme de streaming
- Un iPhone, un lasso, un skieur : le cocktail pour une vidéo bluffante
- Mozilla dévoile son calendrier de mises à jour pour Firefox en 2016
- Windows 10 : adoption galopante en entreprise

 

Utilisation intelligente

Après avoir vu ces rudiments, des équipes de programmeurs ont eu la bonne idée de développer des outils permettant de prendre astucieusement avantage des flux XML en créant un composant d'intégration avec des caractéristiques plus intéressantes comme la mise en cache des fichiers XML (ainsi le serveur ne va plus à chaque fois chercher le fichier XML mais à des intervals réguliers).

Notre composant préféré du moment qui fait cela est MagPieRSS

Pour utiliser ce composant, voici un rapide tour d'horizon :
- Télécharger le composant sur son site officiel
- Le décompresser dans un répertoire de son site web (par exemple dans un répertoire "magpierss" situé à la racine du site)
- Créer un répertoire cache accessible en lecture et en écriture par le serveur web (en mettant une authorisation 777 par exemple). Par défaut, celui ci s'appelle \"cache\".

Pour l'utiliser ensuite, c'est simple, il suffit d'insérer ce bout de code dans vos pages :

<?php
require_once "magpierss/rss_fetch.inc"; // Chemin pour accéder au fichier rss_fetch.inc
$fichier_xml = "http://www.clubic.com/articles.rss"; \\ Adresse du flux XML

$rss = fetch_rss($fichier_xml);

echo $rss->channel['title'],"<br >\n";
foreach ($rss->items as $item ) {
$title = $item['title'];
$url = $item['link'];
echo "<a href=\"$url\">$title</a><br />\n";

}
?>

BE GEEK ! Avec clubic