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:

- Tim Cook fait son coming out
- Spotify rénove et répare enfin son application iPad
- Xiaomi devient le 3e constructeur de smartphones grâce aux pays émergents
- IBM intègre Twitter à ses outils d'analyse de données dans le cloud
- Blend Web Mix : les enjeux du e-commerce en 2014
- YouTube passe à 60 fps : des vidéos plus fluides et plus nettes en voie de démocratisation ?
- La Cnil demande à Apple Retail France de ne plus filmer en permanence ses salariés
- Les smartphones font finalement plonger les résultats de Samsung (màj)
- Bon plan : Amazon offre plus de 100 euros en apps et jeux sous Android
- Xee : une solution française pour connecter sa voiture à prix abordable
- HP lance (enfin) son imprimante 3D et promet de révolutionner le genre
- Band : Microsoft sort un bracelet connecté évolué
- Blend Web Mix : J.F Longy, Cyber-Cité : "L'algorithme de Google est crevé"
- Infos US de la nuit : Apple veut s'implanter en Iran
- EMC décide de prendre à bras-le-corps le sujet du cloud hybride
- HP innove avec le Sprout, un PC équipé d'un scanner 3D et d'un projecteur
- Android 5.0 Lollipop : la liste des terminaux qui y auront droit (màj)
- iPad Mini 3 : la mini tablette d'Apple en test
- EDF porte plainte pour le survol de la centrale du Bugey par un drone
- Apple iPad Mini 3 : la tablette mini mais costaud ?

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

- Android 5.0 Lollipop : la liste des terminaux qui y auront droit (màj)
- Winzip 19 dévoile une nouvelle interface
- Office 16 sortirait au printemps 2015
- 20 ans plus tard, le W3C publie le HTML5
- Office 365 : de nouvelles API pour une meilleure gestion des emails
- Windows 10 : des gestuelles du touchpad inspirées d'OSX
- Le service de streaming musical de Youtube officialisé
- Virtualisation : Microsoft succombe à la technologie Docker
- La chanteuse Taylor Swift vend 8 secondes de bruit blanc sur iTunes, et cartonne au Canada
- WebRTC : bientôt la visio Skype sans plugin avec Internet Explorer
- iTunes Store : les ventes se seraient effondrées de 14% en 2014
- OwnCloud, l'alternative à Dropbox, truffée de vulnérabilités sur Ubuntu 14.04
- Steve Ballmer : "Amazon n'est pas un vrai business"
- Mozilla entend porter Firefox OS sur Raspberry Pi
- Deezer fait l'acquisition de Stitcher pour intégrer des podcasts et des talk-shows
- iOS 8.1 : un nouveau jailbreak controversé par l'équipe chinoise Pangu
- Android Wear reçoit une première mise à jour majeure
- L'éditeur graphique Pixelmator s'invite sur l'iPad
- Ubuntu 14.10 disponible au téléchargement en version finale
- E-mail : Yahoo! et Facebook proposent un nouveau standard de sécurité

 

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é