La meilleure bibliothèque/classe PHP pour générer du RSS/Atom [fermé]
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.
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.
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.