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:

- Sondage : que pensez-vous du projet de loi sur le renseignement ?
- Découverte de Windows 10 Technical Preview 10061 en images
- On Refait le Mac : l'Apple Watch est arrivée !
- Live Japon : Apple Watch, 10 min montre en main
- Infos US de la nuit : Une journée à 5 Milliards de dollars pour Jeff Bezos (Amazon)
- Clubic Week 2.0 : le retour de Nokia
- La semaine de Flock distribue claques et fessées
- Apple Watch : découvrez son interface en vidéo
- La loi de Moore fête ses 50 ans en infographies insolites
- Android Wear et appairage Wi-Fi : quelles montres sont compatibles ?
- Louvois : Sopra-Steria est choisi pour la paie des militaires
- Divacore Ktulu 2 : prix mini et autonomie maxi
- Divacore Ktulu 2 : prix mini et autonomie maxi
- La prochaine montre de Samsung sera ronde
- Apple Watch en vidéo : déballage et premières impressions
- L'Apple Watch démontée : une batterie petite mais facile à remplacer
- Le renouveau de Microsoft se confirme dans son bilan financier
- Delphine Ernotte-Cunci, n° 2 d'Orange, est nommée à la tête de France Télévisions
- Google Maps : Android pisse sur Apple
- Nouveau MacBook d'Apple en vidéo : déballage et premières impressions

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

- Découverte de Windows 10 Technical Preview 10061 en images
- Le renouveau de Microsoft se confirme dans son bilan financier
- Lightroom 6 : panoramas, HDR, Web et fonctions d'Aperture
- Le nouveau client mail de Windows 10 en images
- Ubuntu 15.04 Vivid Vervet disponible en version finale
- Windows 10 : le Solitaire est de retour en natif
- Tidal : le service musical des stars ne convainc pas les foules
- Windows 10 passe en build Technical Preview 10061
- Nokia Here : Facebook, BMW, Audi, Uber et Daimler intéressés par un rachat
- Windows 10 serait finalisé fin juillet, mais sortirait plus tard
- Microsoft partage plus d'informations sur HoloLens
- Microsoft : 34 mises à jour hors cycle pour Windows
- Mattel : créer ses propres jouets grâce à l'impression 3D
- Windows Phone 8.1 Update 2 : le support natif des fichiers MKV
- WhatsApp passe la barre des 800 millions d'utilisateurs actifs
- Office : PowerPoint piloté depuis Android... et maintenant l'Apple Watch
- Nokia reviendrait bien sur le marché des smartphones l'année prochaine
- Linux 4.0 met fin au redémarrage après une mise à jour
- Désinstallation : les meilleurs logiciels pour faire du propre
- Désinstallation : les meilleurs logiciels pour faire du propre

 

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é