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:

- Infos US de la nuit : les résultats de Facebook et Twitter attendus la semaine prochaine
- Clubic Week 2.0 : si à 50 ans t'as pas un hoverboard et un smartphone Vertu…
- La semaine de Flock est toujours de bon conseil, alors écoute-la !
- Quel smartphone 4G à moins de 200 euros ?
- Quel smartphone 4G à moins de 200 euros ?
- Laser sonore "A" : un haut-parleur directionnel pour écouter en privé sans s'isoler
- Replay Web TV, retour sur la présentation de The Crew avec Ivory Tower
- A quel prix les start-up réaliseront-elles leur rêve américain ?
- Move 'N See : des robots caméramans à GPS ou radar pour sportifs
- Deezer fait l'acquisition de Stitcher pour intégrer des podcasts et des talk-shows
- Tinder ajoute une option payante pour étendre le potentiel de rencontres
- Sécurité bancaire : se prémunir des risques du NFC et des nouvelles fraudes
- Le réseau social Ello dit bonjour à une levée de fonds de 5,5 millions de dollars
- iOS 8.1 : un nouveau jailbreak controversé par l'équipe chinoise Pangu
- Sous-domaines abandonnés : un vecteur d'attaques pour les hackeurs
- Android Wear reçoit une première mise à jour majeure
- Sécurité bancaire : se prémunir des risques du NFC et des nouvelles fraudes
- Amazon paye le prix de sa stratégie de dépenses effrénées
- L'éditeur graphique Pixelmator s'invite sur l'iPad
- Bientôt une taxe pour l'encre et les toners ?

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

- 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é
- Malgré l'intégration de Nokia, Microsoft reste en hausse grâce au cloud
- Projet Ara : Google ouvrira sa boutique de composants modulables
- Découvrez Google Inbox en images
- Windows 10 : authentification par deux facteurs et BYOD en natif
- Microsoft fermera l'accès gratuit à Xbox Music en décembre
- Inbox : Google dévoile officiellement sa nouvelle messagerie
- Google intègre Songza au sein de Play Music aux Etats-Unis
- Google Bigtop : une prochaine alternative à Gmail ?
- Avast! Antivirus Gratuit 2015 disponible, quelles nouveautés
- Ubuntu 15.04 Vivid Vervet se tournera vers l'Internet des objets
- Windows 10 : la Build 9860 avec le centre de notifications est disponible
- Android 5.0 Lollipop en vidéo : le tour des améliorations graphiques en 2 minutes !
- iOS 8.1 est disponible : nouveautés et corrections
- Meegopad : une clé HDMI Atom pouvant exécuter Windows 8.1 !

 

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é