Question

Je dois produire un flux RSS/Atom dans diverses applications, et je veux connaître une bonne bibliothèque ou classe capable de produire les deux, et qui gère déjà tous les problèmes courants.

Par exemple, celui que j’ai utilisé pendant des années ne met pas le bon format pour la date, donc mon flux n’est pas bien géré par plusieurs agrégateurs.

Mise à jour:Pourquoi je recherche une bibliothèque ?Car celui que j'utilise depuis des années, que j'ai piraté à plusieurs reprises, a un petit problème.Peut-être qu'une spécification n'est pas correctement respectée.

Pourquoi mon flux RSS duplique-t-il certaines entrées ?

Était-ce utile?

La solution

Le Générateur de flux universel PHP semble être exactement ce que vous recherchez - il propose un moyen simple, basé sur OO, de déclarer un nouveau flux et de le produire selon les spécifications souhaitées.

Il intègre également des conversions de format de date parmi ses fonctionnalités.

Caractéristiques:

  • Génère des flux RSS 1.0, RSS 2.0 et ATOM 1.0
  • Tous les flux sont validés par le validateur de flux.
  • Implémente des espaces de noms appropriés pour différentes versions.
  • Convertit automatiquement les formats de date.
  • Génère un UUID pour les flux ATOM.
  • Gère le codage CDATA pour les balises requises.

Versions prises en charge :

  • RSS 1.0 (qui a officiellement rendu obsolète RSS 0.90)
  • RSS 2.0 (qui a officiellement rendu obsolète RSS 0.91, 0.92, 0.93 et ​​0.94)
  • ATOME 1.0

Autres conseils

Avez-vous vraiment besoin d’une bibliothèque? Choisissez le format et suivez simplement ses spécifications pour générer du code XML valide.

Voici un didacticiel pour commencer.

Hmmm, IMO, à moins que vous ne souhaitiez des enceintes, ces deux formats sont assez faciles à concevoir sans classes. Par exemple. pour les flux RSS d’un site Web que j’administre, j’ai tout simplement écrit un petit modèle Smarty, et cela fonctionne plutôt bien.

Pour les jeux de caractères non anglais, jetez un œil à la fonction PHP htmlentities: http://php.net/manual/fr/function.htmlentities.php

Je viens d'ajouter pour supporter le jeu de caractères croates:

$nodeText .= (in_array($tagName, $this->CDATAEncoding))? $tagContent : htmlentities($tagContent, ENT_COMPAT, 'UTF-8');

PHP Universal Feed Generator est une bonne réponse. Il me suffisait de modifier le code en fonction d’un commentaire sur la page Web pour traiter correctement les caractères français.

http://www.ajaxray.com/blog/2008/03/08/php-universal-feed-generator-supports-rss-10-rss-20-and-atom/ # comment-341

  

Comme Kereste le dit (1. juin) FeedWrite   fait des problèmes avec certains non-anglais   Les caractères utf-8 tels que & # 228; etc .. c'est   parce que xml ne connait que 5 entités   (& amp;, & # 8221;, & # 8217 ;,). J'ai donc changé de ligne 298 dans le   code source dans

     

$ nodeText. = (in_array ($ tagName,   $ this - > CDATAEncoding))? $ tagContent:   str_replace (array (& # 8216; &; amp; & n ° 8217 ;, & n ° 8216; & # 8221; & # 8216 ;, & # 8220; & # 8216; & # 8221 ;, & # 8221;   ), array (& # 8216; & et & # 8217;, & # 8216; & "; & # 8217 ;, & # 8216; '& # 8217;, & # 8216; & Lt; & # 8217;, & # 8216; & Gt; & # 8217;   ), $ tagContent);

     

pour convertir les charakters en   mauvaises entités XML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top