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:

- Marché des tablettes : pour les analystes, l'essoufflement se confirme
- Cdisplay : Cdiscount et Haier lancent une tablette à 50 euros
- Smartphones : une croissance tirée par les marchés émergents ?
- Sonos se débarrassera enfin de tous les fils (màj)
- Gérer son budget : les meilleurs apps et logiciels gratuits
- Gérer son budget : les meilleurs apps et logiciels gratuits
- Photos volées : une négligence d'Apple, le pirate déjà identifié ?
- Antitrust Microsoft : la société devra répondre à la Chine dans 20 jours
- Navigateurs : Google encourage les mises à jour via son moteur de recherche
- iPhone 6 : une 1ère prise en main, et du paiement mobile NFC ?
- Free renonce à Bouygues Telecom mais reste intéressé par T-Mobile aux USA
- Orange attaque Free en justice pour violation de brevets sur la TV de rattrapage
- L'Archos 45 Helium 4G lancé à 100 euros en réponse au Wiko Kite
- Microsoft s'intéresserait à Cyanogen, développant CyanogenMod, l'OS basé sur Android
- Google passe Chrome à l'heure du HTML 5.1
- Email et vie privée : Microsoft défie la justice américaine
- Photos volées : quelques conseils de sécurité pour protéger vos informations personnelles
- Leak d'iCloud : Jennifer Lawrence et d'autres célébrités victimes d'un piratage
- Alienware présente son nouvel Area 51
- Live Japon: d'Ebola au cancer, les électroniciens se font médecins

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

- Antitrust Microsoft : la société devra répondre à la Chine dans 20 jours
- Navigateurs : Google encourage les mises à jour via son moteur de recherche
- Microsoft s'intéresserait à Cyanogen, développant CyanogenMod, l'OS basé sur Android
- Google passe Chrome à l'heure du HTML 5.1
- Email et vie privée : Microsoft défie la justice américaine
- Windows Live Messenger fermera définitivement le 31 octobre
- Etude : 3/4 des smartphones en France et en Europe sont sur Android
- Ubuntu : quand l'assistant de ré-installation efface l'intégralité du disque dur...
- Chrome bêta active le 64-Bit sur Mac, Firefox Nighlty teste l'écran sponsorisé
- Yves Riesel, Qobuz : "la France n'est pas un bon marché pour servir de base de départ"
- Acer Chromebook 11 C730 : moins performant mais beaucoup moins cher
- BitDefender : la gamme 2015 est disponible
- En manque d'investisseurs, Qobuz se place sous sauvegarde judiciaire
- Yahoo : les utilisateurs d'Aviate installeraient en moyenne 95 applications
- Windows XP : bientôt un Service Pack 4 officieux ?
- Windows Store : Microsoft fait enfin le ménage
- 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

 

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é