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 : l'iWatch dévoilé le 9 septembre, Snapchat valorisé 10 Milliards de dollars
- Zbox pico PI320 : Zotac dévoile un PC Windows de la taille d'un Raspberry Pi
- Archos dévoile un bonnet connecté pour l'écoute de musique
- Disney dépose des brevets pour utiliser des drones dans ses parcs d'attraction
- Opera revendique 100 millions d'utilisateurs actifs sur Android
- SSD : le test du 850 Pro de Samsung
- Samsung 850 Pro, le 1er SSD avec NAND 3D
- Le jeu gratuit du mercredi : un plateformer délicieusement absurde
- Ralph Lauren s'intéresse aux vêtements connectés du quotidien
- Données bancaires : le malware Backoff aurait compromis 1 000 sociétés américaines
- Dropbox facture désormais 1 To pour 9,99 euros par mois
- Dragon Age : Inquisition jouable en coopération
- NVIDIA Shield Tablet craque mais ne rompt pas
- Archos : nouveaux smartphones et nouvelles tablettes à l'IFA
- La Poste lance le "forfait Music" : de la musique à la demande limitée à Universal
- Après la Chine, Qualcomm serait soupçonné d'abus de position dominante en Europe
- ICREACH : le moteur de recherche développé par la NSA
- Surface 2 : la version RT désormais à partir de 319 euros
- Moleskine tente d'accompagner l'utilisation des stylos connectés
- HTC Desire 510 : un premier smartphone 64 bits milieu de gamme

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

- Opera revendique 100 millions d'utilisateurs actifs sur Android
- Le jeu gratuit du mercredi : un plateformer délicieusement absurde
- Archos : nouveaux smartphones et nouvelles tablettes à l'IFA
- Pour Wordpress, Automattic rachète le plugin BruteProtect
- Chrome optimise le rendu des textes et passe au 64-bit sur Windows 7 et 8
- Skype : la traduction en temps réel s'appuiera sur les réseaux sociaux
- IE et Media Player : la Chine ouvre une enquête sur Microsoft
- Spotify mis à jour sur Windows Phone avec le streaming gratuit
- Huawei : Tizen n'a aucune chance de réussir
- COS, l'OS chinois basé sur Linux, serait disponible en octobre (+ vidéo)
- iMessage vs BBM : quand BlackBerry tacle Apple...
- Les conducteurs de Mercedes et Volvo devront attendre avant d'avoir CarPlay
- Microsoft Surface Pro 3 : le meilleur des deux mondes ?
- Après Office 365, Microsoft proposerait Windows 365
- Windows RT : bientôt sans Bureau ?
- Windows Store : attention aux arnaques !
- Vidéo Swing Copters : on a fait un score de 29 ! mais...
- Acer Chromebox CXI : un nouveau design pour le nettop normalisé
- BlackBerry Blend : l'accès à distance aux données du smartphone
- Microsoft : une alternative à Chromecast dans les tuyaux ?

 

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é