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:

- Facebook accusé de traquer tous les internautes connectés ou non à son réseau
- Thecus N5810Pro : un NAS anti perte de données à batterie intégrée
- Zayn Malik, ex-One Direction, rejoint Intel, Mooly Eden s'en va
- Asus annonce l'arrivée en France des Transformer Book Chi et ZenBook Pro
- Tidal : un service de streaming plus avantageux... pour les artistes (Debug#46)
- 5% des utilisateurs de Google seraient victimes d'un adware sur leur machine
- Lancement de l'Apple Watch : grands magasins, boutiques branchées et tapis rouge
- Google Chromebit, une clé HDMI pour transformer un écran en PC
- Bon plan : un LG G3 à moins de 300 euros
- Android : tous les développeurs peuvent porter leurs applications sur Chrome OS
- Gigabyte Brix : PC miniatures avec Broadwell, NFC et Wi-Fi de série
- Google Inbox introduit une fonction Snooze personnalisable
- Xiaomi annonce une balance connectée à 15 euros
- Amazon transpose les achats en "1-click" à la vie réelle
- Infos US de la nuit : GoDaddy va entrer en bourse à 20 dollars par action
- Saga Internet Explorer : 20 ans de Web en images
- Tidal : du streaming lossless porté par Jay-Z et sa bande de stars
- Galaxy S6, iPhone 6 et Lumia 930 : le choc des photos
- Galaxy S6, iPhone 6 et Lumia 930 : le test de la couche photo
- Firefox 37 disponible au téléchargement

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

- Saga Internet Explorer : 20 ans de Web en images
- Tidal : du streaming lossless porté par Jay-Z et sa bande de stars
- Firefox 37 disponible au téléchargement
- Windows 10 : nouvelle build expérimentale avec le navigateur Spartan
- Microsoft : vers des PC portables à 150 € pour concurrencer les Chromebooks
- Avec un nouveau launcher, Google pourrait faire de l'ombre à Cortana dans Windows 10
- PlayStation Music : Spotify désormais accessible sur PS4 et PS3
- Windows 10 : Microsoft étend la liste des smartphones compatibles
- Microsoft rachète LiveLoop, spécialiste de la collaboration sur Office
- Une version Web de LibreOffice attendue cette année
- Windows 10 : les différents scénarios de mise à jour (màj)
- Windows 10 : les différents scénarios de mise à jour
- Futuremark annonce une nouvelle version de son 3DMark
- Microsoft, Apple, Google et Facebook s'engagent contre la surveillance en ligne
- Chrome : Google publie une extension pour optimiser la bande passante
- Office 365 Personnel & Famille : Microsoft frôle les 10 millions d'abonnés
- Avec l'aide de Microsoft, Cyanogen veut faire la guerre à Google
- Acheter Microsoft Office 2007, AutoCAD en occasion : bonne affaire ou arnaque ?
- Acheter Microsoft Office 2007, AutoCAD en occasion : bonne affaire ou arnaque ?
- Avec Pony Express, Gmail permettrait bientôt de payer ses factures

 

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é