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:

- Gibson sort un casque "jusqu'à 10 000 euros"
- La batterie externe capable de faire démarrer une voiture
- Vidéo : on a testé le SMS qui reboot l'iPhone à distance
- Ultra Street Fighter 4 loupe son lancement sur PlayStation 4
- Google commence à répondre à vos questions avant que vous ayez fini de les poser
- Apple fait des tests de livraison rapide à domicile
- Le 28 mai 2009, Microsoft se lance contre Google avec Bing
- Les réseaux mobiles des opérateurs sont encore inégaux en 2015
- Logitech lance une nouvelle souris à la mode : la m238 Play !
- Creative annonce les Sound Blaster Roar 2 et Free
- Vers une nouvelle manette Xbox One chez Microsoft en juin
- Un robot capable de s'adapter s'il est "blessé"
- E3 2015 : le point sur les différentes conférences
- Infos US de la nuit : l'arrivée imminente d'un bouton achat sur Google
- Mark Zuckerberg : les jeux vidéo peuvent pousser les enfants vers la programmation
- Kantox veut court-circuiter les banques avec les échanges P2P
- Sony confirme la sortie de son casque Morpheus pour 2016
- Le LG G4 débarque à la rédac' : déballage et premières impressions
- Organiser ses vacances sur Internet, les bonnes pratiques
- Organiser ses vacances sur Internet, les bonnes pratiques à connaître

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

- Distribution Linux : Mandriva se déclare en faillite
- Cortana bientôt disponible pour iOS et Android
- Twitter : l'application Periscope disponible sur Android
- Richard Stallman (GNU) compare Windows et Mac OS à des malwares
- Microsoft a failli signer le plus gros rachat mondial depuis dix ans
- NSA : un plan pour espionner les mobinautes à travers les applications Android
- Canonical pourrait prochainement entrer en bourse
- Windows 10 Pro Insider Preview 10122 : les nouveautés en images
- Mozilla ouvre une bêta privée pour Firefox sur iOS
- Voice Bridge : utiliser sa ligne fixe depuis son smartphone
- Mozilla introduira des tuiles promotionnelles suggérées dans Firefox
- Chrome : Google optimisera (enfin) la gestion de la mémoire
- Outlook.com devient Outlook Mail et s'enrichit d'un flot de nouveautés
- Brillo : Google plancherait sur une version d'Android pour l'Internet des objets
- Microsoft envisagerait un rachat du gestionnaire de tâches Wunderlist
- Chromebook : les ventes estimées à 7,3 millions d'unités cette année
- Yandex : le navigateur russe passe en bêta et se concentre sur la vie privée
- Windows 10 : une nouvelle build optimise les performances de Microsoft Edge
- Windows 10 : Microsoft peinerait à convaincre les développeurs
- Spotify se met à la vidéo et à la course à pied

 

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é