Espace membre :
flechePublicité

// 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 : Beats fait officiellement partie d'Apple, GoPro chute en bourse
- Droit à l'oubli : Google ne parvient pas toujours à arbitrer
- Le Zap Clubic n°5 : NES, Lytro et robots supporters
- CDN : Apple active son propre réseau de distribution de contenus
- Les applications Runastic se dotent d'un bracelet connecté
- Près d'un forfait mobile sur deux est désormais sans engagement
- Free a des atouts à faire valoir pour racheter T-Mobile US
- USA : Google détruit l'une de ses mystérieuses constructions flottantes
- Logitech X300 : une enceinte mobile qui varie les positions
- L'Oculus Rift DK2 intègre un écran de Galaxy Note 3
- L'application Slingshot se met à jour pour des réactions en chaîne
- Sacred 3, le test d'un jeu désacralisé
- Un SDK pour des applications tierces sur le Freebox Player
- Microsoft met à jour Office pour iPad : export en PDF et tableaux croisés
- Infos US de la nuit : bonnes prévisions pour GoPro, bons résultats pour T-Mobile
- Iliad (Free) est prêt à mettre 15 milliards de dollars pour s'offrir T-Mobile US
- Le Galaxy S5 ne parvient pas à relancer les ventes de Samsung
- De nouveaux APU AMD : A10-7800, A8-7600 (!) et A6-7400K
- La version 64 bits de Chrome pour Windows arrive en bêta
- Confidentialité des données : la Russie veut scruter les codes sources d'Apple et SAP

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

- Microsoft met à jour Office pour iPad : export en PDF et tableaux croisés
- La version 64 bits de Chrome pour Windows arrive en bêta
- BitTorrent propose Bleep, une messagerie décentralisée et sécurisée
- Le jeu gratuit du mercredi : Ninja furieux et shurikens
- LibreOffice passe en version 4.3
- Vidéo test de la console Android M.O.J.O. : OUYA a trouvé son maître ?
- Microsoft met à jour OneNote pour Mac et iOS
- Leak, un service d'envoi de mails anonyme et gratuit
- Chris Beard est nommé PDG de la fondation Mozilla
- Les bureaux de Microsoft perquisitionnés en Chine
- Corel AfterShot Pro 2.0 : 64 bits et HDR
- Sondage : que téléchargez-vous comme logiciel ?
- Sur Android Firefox bêta intègre "nativement" les contenus Web
- La vérité contre Anicet : pourquoi les barres de progression ne sont jamais fiables ?
- La bêta d'OS X Yosemite ouverte au public : comment l'installer
- Sécurité : Chrome adoptera BoringSSL, le fork d'OpenSSL crée par Google
- Vidéo OSX Yosemite bêta : le tour complet du système en 2 minutes chrono
- Stockage réseau : Comparatif NAS 2014
- Firefox 33 pourrait intégrer le codec OpenH.264 de Cisco
- Skype passe la 5e sur Android et s'invitera sur le FirePhone

 

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 Logo

flechePublicité