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:

- Livraison sur rendez-vous : Chronopost rachète Colizen à 100%
- Toujours dans le rouge, BlackBerry réduit ses pertes
- Yamaha NX-B150 : kit 2.1 design et Bluetooth
- Microsoft préparerait un casque de réalité virtuelle pour 2015
- Microsoft Flight Simulator X décolle sur Steam à 4,99€
- Honor 6 Plus, en perspective
- Honor 6 Plus, en perspective
- ZANO, le nano drone à selfie
- Instagram supprime des millions de comptes fictifs, et ça ne plait pas à tout le monde
- Microsoft démarre la mise à jour Denim pour Windows Phone: 4K en vue
- KipstR : un bracelet qui enregistre ce que vous regardez quand vous vous endormez sur le canapé
- eBay : des enchères sur Internet à l'achat partout, tout le temps
- Atos rachète la division informatique de Xerox
- Infos US de la nuit : Alcatel-Lucent s'envole à Wall Street sur fond de rumeurs de discussions avec Nokia
- Amazon Prime Now, la livraison en une heure... à New-York
- Tablettes : bien les configurer pour les enfants
- L'ICANN victime d'une campagne d'hameçonnage : des données exposées
- Configurer une tablette pour ses enfants : nos conseils
- L'Europe étudie la plainte d'Uber contre la justice française
- Amputé, un Américain est équipé de deux bras bioniques

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

- Ballot Screen : Microsoft met un terme au choix du navigateur
- Prix des applications mobiles : hausses (et baisses ?) des tarifs à prévoir en janvier
- Microsoft Sway : découvrez la Preview publique en images
- Skype Translator ouvre sa bêta de traduction en temps réel
- Windows Phone : Microsoft teste de nouvelles interactions
- Runiso : "Il n'y a pas de magie pour optimiser une page Web"
- Windows 10 : Cortana s'invite dans l'interface
- Microsoft ouvrira sa plateforme Project Orleans notamment utilisée sur Halo 4
- Patch Tuesday : Microsoft supprime une mise à jour dangereuse pour Windows 7
- Windows Phone : Microsoft plancherait sur un Lumia 330
- WhatsApp : bientôt une version Web de la messagerie ?
- Microsoft annonce le prochain chapitre de Windows 10 pour le 21 janvier
- Microsoft rachète HockeyApp pour tester ses applis mobiles
- Voitures connectées : Ford snobe Microsoft et signe avec BlackBerry pour QNX
- Adobe rachète la banque d'images Fotolia pour 800 millions de dollars
- Lumia 535 : test du premier smartphone de Microsoft
- Lumia 535 : test du premier smartphone de Microsoft
- Office.com : Microsoft intègre Bing et optimise les PDF
- Découvertes musicales avec Spotify : intégration à Shazam et top des amis
- Après Apple et Amazon, le scandale Luxleaks frappe Skype

 

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é