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:

- Nouveau Clubic : le flux d'actualité évolue
- Bing : Microsoft revend son imagerie à Uber et transfère sa régie chez AOL
- L'Europe promet la fin du roaming pour 2017
- Les premiers stocks de matériels Steam (manettes, machines) sont écoulés
- Drop, un accessoire pour piscine qui détecte les chutes... et l'urine
- Pas de Freebox v7 avant 2016, les annonces sur la mobilité repoussées
- Abattre l'open space : ce que l'on peut faire avec Slack
- Asus lance une carte mère à 75 euros idéale pour un HTPC Ultra HD
- Antitrust : Yelp publie une étude sur les pratiques de Google
- Abattre l'open space : ce que l'on peut faire avec Slack
- Mojang (Minecraft) se prépare à fermer Scrolls, son autre projet
- Google vs Oracle : la Cour Suprême des Etats-Unis rejette l'Appel de Google
- Infos US de la nuit : La NSA s'est penchée sur les intérêts commerciaux français
- Meizu MX4 Ubuntu en France : mise en vente sur tirage au sort
- UberPOP : deux responsables de l'application sont interrogés par la police
- Surface Pro 3 : un modèle Core i7 plus abordable (aux Etats Unis)
- La vente liée fait son retour devant la justice européenne
- Fallout 4 : les smartphones compatibles avec le Pip-Boy de l'édition collector
- On Refait le Mac : Apple Music, le pari du payant
- Toshiba : un netbook 14" pour étudiant et un grand 360° avec touches Cortana

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

- Abattre l'open space : ce que l'on peut faire avec Slack
- Abattre l'open space : ce que l'on peut faire avec Slack
- Google vs Oracle : la Cour Suprême des Etats-Unis rejette l'Appel de Google
- Meizu MX4 Ubuntu en France : mise en vente sur tirage au sort
- La vente liée fait son retour devant la justice européenne
- CyanogenMod : Android 4.3 et 5.0 et l'expérience Google en versions stables
- Apple Music : du concret à la veille du lancement
- Eternify : Spotify bloque l'application qui gonfle les revenus des artistes
- BBM s'enrichit de conversations anonymes sur BlackBerry, Android et iOS
- Windows 10 Mobile : découvrez les dernières nouveautés en images
- Le PDG de BlackBerry évoque la possiblité d'un smartphone Android sécurisé
- Windows 10 : un "portail vers l'espace" pour le fond d'écran par défaut
- Windows 10 Mobile : Microsoft publie la Build 10149
- Windows 10 serait commercialisé sur clé USB, une première
- TaiG 2.0 : enfin un jailbreak pour iOS 8.3 (màj)
- Windows 10 : un prix public de 135 euros au lieu des 119 attendus
- Google dément avoir mis les internautes sur écoute via Chrome
- Android : Word, Excel et PowerPoint disponibles en version finale
- Eyefi s'ouvre au transfert et au stockage en ligne des appareils photo Wi-Fi
- Samsung copie Apple en s'associant à Red Hat

 

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é