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:

- Star Wars Battlefront : une bêta sur consoles et PC début octobre
- Google s'offre un nouveau logo
- Debug : 50 Go avec Free Mobile, la guerre des prix a-t-elle repris ?
- Windows 10 affiche une part de marché de 5,2 %
- Paypal lance Paypal.me pour simplifier la demande d'argent
- Deus Ex : Mankind Divided arrivera le 23 février 2016
- Le Fractal Design Define R5 testé dans la chambre la plus silencieuse au monde
- Attaques contre le Xbox Live et le PSN : la police britannique arrête six adolescents
- Avec VP10, Google veut optimiser le streaming des vidéos en 4K
- Bridage data : Bouygues Telecom demande 317 millions d'euros à Free Mobile
- Resident Evil Origins Collection disponible le 22 janvier sur PC, PS4 et Xbox One
- LinkedIn : la messagerie fait enfin peau neuve
- GRIP : une plateforme pour faciliter les dépôts de plaintes contre Google
- Une nouvelle Xbox One avec disque 1 To SSHD et manette Elite en novembre
- Free Mobile passe son forfait à 50 Go de données (màj)
- Opération Gamerscore : Microsoft récompense les joueurs
- Cisco et Apple s'attaquent au téléphone fixe du bureau
- Google Chrome optimisera la lecture des medias en streaming
- Uncharted 4 : deux éditions spéciales et une sortie le 18 mars 2016
- Halo 5 : Guardians : une cinématique d'introduction qui met l'eau à la bouche

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

- Avec VP10, Google veut optimiser le streaming des vidéos en 4K
- Google Chrome optimisera la lecture des medias en streaming
- Étudiants : les bons plans et les astuces téléphonie et internet
- 15 jeux gratuits indépendants et indispensables
- 15 jeux gratuits indépendants et indispensables
- Street Fighter 5 : nouvelle phase de test et nouveau personnage
- Snip : le nouvel outil de capture de Microsoft
- Sony fusionne une enceinte portable et une télécommande
- Amazon Underground : des applications Android gratuites toute l'année
- Archos Flip : un hybride façon Yoga à 249 euros
- Windows 10 : 75 millions d'appareils équipés
- Windows 10 : on a dragué Cortana(na) ! (vidéo)
- Parallels 11 et Fusion 8 amènent Windows 10 sur les Mac
- CCleaner 5.09 : une version tournée vers Windows 10
- Sony : des conférences au Tokyo Game Show et à la Paris Games Week
- Infos US de la nuit : Tim Cook rassure sur les ventes d'Apple en Chine
- Windows 10 : les trackers BitTorrent bloquent l'OS de Microsoft
- Windows 95 et son menu Démarrer fêtent leurs 20 ans
- Android : bientôt moins d'applications Google installées par défaut
- Photos floues : Apple rappelle certains iPhone 6 Plus

 

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é