Maxime MILLET

Sommaire

Documentation SyndExport

Vous trouverez ici toute les informations dont vous pourrez avoir besoin pour l'utilisation de SyndExport. Un sommaire pour parcourir la page plus rapidement est disponible à droite.

Cette documentation s'applique à toutes les version de la branches 1.x . Sauf si cela est précisé, chaque méthode est compatible avec toutes les versions.

Manipuler un flux avec SyndExport

Pour commencer à utiliser SyndExport, vous devez inclure le fichier classe puis créer un nouvel objet SyndExport. Son constructeur prend deux paramètres :

  • Le premier, obligatoire, doit contenir le flux. Vous pouvez le récupérer avec la fonction file() ou file_get_contents() mais pensez à vérifier qu'il s'agit d'un fichier XML.
  • Le second, optionnel, indique en chaine le type de flux, soit RSS soit ATOM. Si vide, il sera détecté automatiquement.
<?php
include("syndexport.php");
// nouveau flux à exporter :
$flux = new SyndExport($xml)
// nouveau flux RSS à exporter :
$fluxrss = new SyndExport($xml, "RSS");
// nouveau flux ATOM à exporter :
$fluxatom = new SyndExport($xml, "ATOM");
?>

Type de flux

Maintenant que votre objet SyndExport est créé, vous pouvez obtenir le type du flux utilisé, grâce à la méthode returnType(). Celle-ci retourne false si ce n'est pas un flux RSS ni un flux ATOM.

$type = $flux->returnType();
if($type !== FALSE) echo "Ceci est un flux $type !";
else echo "Ceci n'est pas un flux !";

Nombre d'entrées

Le nombre d'entrées que possède le flux peut s'obtenir grâce à l'attribut countItems().

$nbr = $flux->countItems();
echo "Le flux possède $nbr entrées !";

Extraire les informations du flux

Pour obtenir les informations de flux, il faut utiliser la méthode exportInfos(), celle-ci retourne un tableau php contenant le titre, la description, la date de dernière modification, l'auteur et son e-mail, l'image du flux, la langue du flux, le copyright ainsi que l'url du site.
(!) Vous pouvez passer la chaine json en paramètre pour exporter les informations en JSON.
(!) Le second paramètre vous permet de donner le nom d'une balise à récupérer qui ne l'est pas automatiquement, son ID dans le tableau est other.(version 1.1 ou +)

$xml = file_get_contents("rss.xml");
$flux = new SyndExport($xml, RSS);
var_dump($flux->exportInfos());

Va retourner le tableau suivant :

array(8) {
  ["title"]=>
  string(8) "Mon site"
  ["description"]=>
  string(35) "Ceci est un exemple de flux RSS 2.0"
  ["link"]=>
  string(22) "http://www.example.org"
  ["language"]=>
  string(2) "fr"
  ["email"]=>
  string(16) "toto@exemple.com"
  ["author"]=>
  string(4) "Toto"
  ["last"]=>
  string(29) "Sat, 14 Sep 2012 02:02:02 GMT"
  ["copyright"]=>
  string(16) "Toto Corporation"
}

Version 1.1 : Pour obtenir une seule information de flux, il faut utiliser la méthode exportOtherInfo(), celle-ci retourne le contenu de la balise. Elle peut par exemple servir à connaitre le contenu d'une balise qui n'est pas retournée par défaut comme le TTL.
/!\ Son seul paramètre est le nom de la balise à retourner.

echo "Le TTL est de : ".$flux->exportOtherInfo("ttl"));

Va afficher le message suivant :

Le TTL est de : 75

Extraire les entrées

Pour obtenir les entrées de flux, il faut utiliser la méthode exportItems(), celle-ci retourne un tableau php multidimensionnel contenant pour chaque entrée les informations suivantes (si présente dans le flux) : titre, description, lien, auteur, date et guid.

/!\ Le premier paramètre est le nombre d'entrées maximum à retourner, par défaut il est égal à 20. Pour le rendre illimité (retourner toutes les entrées) il faut utiliser -1 .
(!) Vous pouvez passer la chaine json en second paramètre pour exporter les entrées en JSON.
(!) Le troisième paramètre vous permet de donner le nom d'une balise à récupérer qui ne l'est pas automatiquement, son ID dans le tableau est other. (version 1.1 ou +)

var_dump($flux->exportItems());

Va retourner le tableau suivant :

array(2) {
  [0]=>
  array(5) {
    ["title"]=>
    string(51) "Les robots propulsés par Atom redeviennent normaux"
    ["description"]=>
    string(41) "Poisson de mai ! Oui, ça n'existe pas..."
    ["link"]=>
    string(36) "http://example.org/2012/05/01/atom04"
    ["date"]=>
    string(20) "2010-05-01T10:18:02Z"
    ["guid"]=>
    string(45) "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"
  }
  [1]=>
  array(6) {
    ["title"]=>
    string(46) "Des robots propulsés par Atom deviennent fous"
    ["description"]=>
    string(17) "Poisson d'avril !"
    ["link"]=>
    string(36) "http://example.org/2012/04/01/atom03"
    ["date"]=>
    string(20) "2010-04-01T18:30:02Z"
    ["guid"]=>
    string(45) "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"
    ["media"]=>
    array(3) {
      ["url"]=>
      string(28) "http://www.foo.com/movie.mov"
      ["type"]=>
      string(15) "video/quicktime"
      ["length"]=>
      string(8) "12216320"
    }
  }
}

Liste des méthodes

Nom Version(s) Paramètre(s) Retour
returnType() 1.0 et + Aucun Type de flux
countItem() Aucun Nombre d'entrées
exportInfos() 1 : Chaine "json" pour exporter les informations en JSON (optionnel) Informations du flux
1.1 2 : Autre balise à exporter (optionnel)
exportItems() 1.0 et + 1 : Nombre d'entrées à retourner au maximum
2 : Chaine "json" pour exporter les informations en JSON (optionnel)
Entrées du flux
1.1 3 : Autre balise à exporter (optionnel)
exportOtherInfo() 1.1 1 : Nom de l'information du flux à retourner (ex : title) Nom de l'information