}
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:

- MWC 2015 - Découvrez le Honor 6+ en vidéo : double capteur photo, nano SIM et micro SIM
- MWC 2015 - Honor 6+ : un photophone avec deux capteurs de 8 MP
- Cyanogen signe un partenariat avec Qualcomm pour s'émanciper
- MWC 2015 - Samsung Galaxy S6 : que vaut son appareil photo face à l'iPhone 6 ?
- Metal Gear Solid 5 : sortie mondiale le 1er septembre 2015
- Réalité virtuelle : l'Oculus Rift utilisé pour reconstituer des scènes de crime en 3D
- MWC 2015 - Galaxy S6 vs iPhone 6, le match de la photo !
- MWC 2015 - Huawei Talkband B2 en vidéo : on a vu le bracelet / oreillette en version 2
- Les 10 nouveaux milliardaires de la sphère high-tech sont...
- MWC 2015 - Prise en main du Lumia 640
- Le robot Nao n'a pas réussi à devenir le meilleur ami de l'homme
- MWC 2015 - La tablette Xperia Z4 de Sony prend des airs de Vaio
- Les opérateurs européens veulent des règles flexibles de neutralité du réseau
- MWC 2015 - Acer Liquid Jade Z en vidéo : aussi fin mais plus abordable que le Jade S
- MWC 2015 - Découvrez le Projet Ara en vidéo (smartphone modulaire Google)
- House of Cards saison 3 : un véritable carton en piratage
- Apple sacré champion des fêtes de fin d'année
- MWC 2015 - Wiko dégaine sa Watch
- MWC 2015 - BlackBerry : quatre smartphones en 2015 dont le Leap
- AVG développe des lunettes pour empêcher la reconnaissance faciale, mais se montre pessimiste

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

- Mantle 1.0 : c'est fini (comme prévu), vive DirectX 12 !
- MWC 2015 - ITW : Firefox sur iOS au 2nd trimestre, Hello bientôt multiplateforme
- MWC 2015 - Nouveaux marchés et nouveaux terminaux pour Firefox OS
- Ubuntu Phone : découvrez en vidéo l'Aquaris E4.5 de Bq
- Windows 10 prendra en charge l'USB 3.1
- VideoLAN annonce la nouvelle version stable de VLC dispo sur toutes plateformes
- FAQ Windows 10 Technical Preview
- FAQ Windows 10 Technical Preview
- Avec Spartan Microsoft veut casser la monoculture de WebKit
- Télécharger légalement une ISO de Windows 7 est maintenant possible
- Windows 10 : vos questions, nos réponses, en direct !
- Spotify et Musixmatch : en plus de la musique, vous aurez désormais les paroles
- Android for Work : Google pousse les entreprises dans les bras d'Android
- WhatsApp Web fonctionne désormais sur Firefox et Opera
- Windows 10 vs OS X : le clash des OS aura-t-il lieu ?
- Windows 10 vs OS X : le clash des OS aura-t-il lieu ?
- Chasse aux bugs : Google généralise son programme de récompense
- Avast for Business : une solution de sécurité gratuite pour les PME
- Wordpress : le plugin WP-Slimstat reçoit une mise à jour pour combler une vulnérabilité
- Plus d'un milliard de smartphones Android livrés en 2014

 

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é