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 : Apple dépasse toutes les prévisions
- Cybook Muse et Ocean : Bookeen lance des liseuses élégantes, poche ou grand format
- La Chine subventionnera un peu moins Huawei et ZTE à l'export
- Bluesmart : le temps de la valise connectée est-il arrivé ?
- Web TV : venez affronter Virgile sur Ultra Street Fighter 4
- 2 mois avec le Flower Power de Parrot : enfin la main verte ?
- Samsung Exynos 7 Octa : une puce 64 bits haut de gamme pour Android 5.0 Lollipop
- 2 mois avec le Flower Power de Parrot
- Ginni Rometty, PDG IBM : "ce trimestre est décevant"
- Tor : le routeur Anonabox est annulé sur Kickstarter
- Les VTC marquent un point devant le Conseil constitutionnel
- Meegopad : une clé HDMI Atom pouvant exécuter Windows 8.1 !
- Sur iOS, Dropbox renforce la sécurité et prend en charge TouchID
- Fiscalité : Google songerait à quitter son paradis des Bermudes
- SVOD sur Linux : le point sur Netflix, CanalPlay et FilmoTV
- Spotify Family permettra de partager une souscription
- Sur Android, Gmail proposera de configurer ses comptes Outlook.com et Yahoo!
- Cyber-harcèlement : la Grande-Bretagne veut quadrupler la peine
- La distribution GNU/Linux Ubuntu fête ses 10 ans
- Test de Legend of Grimrock 2 : une suite dopée aux stéroïdes

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

- Meegopad : une clé HDMI Atom pouvant exécuter Windows 8.1 !
- Spotify Family permettra de partager une souscription
- La distribution GNU/Linux Ubuntu fête ses 10 ans
- Corel lance PaintShop Pro X7, son logiciel de retouche photographique
- Google unifie davantage les développements de Chrome OS et Android
- En plus des appels vidéo, BBM s'inspirera de Snapchat
- OS X 10.10 Yosemite : le dossier
- OS X 10.10 Yosemite : le Mac remis à plat
- Live Tiles : Microsoft gagne son procès contre SurfCast
- Android 5.0 Lollipop : la liste des terminaux qui y auront droit
- Google annonce Nexus Player : troisième tentative pour conquérir la TV ? (màj)
- Oui, même Android Wear accueillera les surcouches des constructeurs
- Cortana, Google Glass : les géants tentent de séduire les professionnels
- HP fermera les services en ligne liés à WebOS
- Twitpic fermera bien ses portes
- Firefox 34 bêta introduit officiellement Hello, pour les conversations audio/vidéo
- Bing s'incruste dans Internet Explorer 11 à chaque nouvel onglet
- iTunes 12 disponible pour Mac et PC
- Netflix attire moins de nouveaux abonnés : quelques explications
- Mozilla lance son HumbleBundle pour 8 jeux en ligne

 

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é