Domanda

Devo produrre un feed RSS / Atom in varie applicazioni e voglio conoscere una buona libreria o classe che sia in grado di produrre entrambi e che gestisca già tutti i problemi comuni.

Ad esempio, quello che ho usato per anni non fornisce il formato giusto per data, quindi il mio feed non è ben gestito da diversi aggregatori.

Aggiornamento: Perché sto cercando una biblioteca? Perché quello che ho usato per anni, che avevo hackerato alcune volte, ha un piccolo problema. Forse una specifica non viene seguita correttamente.

Perché il mio feed RSS duplica alcune voci?

È stato utile?

Soluzione

Il PHP Universal Feed Generator sembra essere esattamente quello che stai cercando: ha un modo semplice e basato su OO di dichiarare un nuovo feed e inviarlo alle specifiche desiderate.

Ha anche conversioni di formato data integrate come una delle sue caratteristiche.

  

Caratteristiche:

     
      
  • Genera feed RSS 1.0, RSS 2.0 e ATOM 1.0
  •   
  • Tutti i feed sono convalidati dal validatore di feed.
  •   
  • Implementa spazi dei nomi appropriati per versioni diverse.
  •   
  • Converte automaticamente i formati data.
  •   
  • Genera UUID per feed ATOM.
  •   
  • Gestisce la codifica CDATA per i tag richiesti.
  •   
     

Versioni supportate:

     
      
  • RSS 1.0 (che ufficialmente è diventato obsoleto RSS 0.90)
  •   
  • RSS 2.0 (che ufficialmente è diventato obsoleto RSS 0.91, 0.92, 0.93 e 0.94)
  •   
  • ATOM 1.0
  •   

Altri suggerimenti

Hai davvero bisogno di una biblioteca? Scegli il formato e segui semplicemente le sue specifiche per generare un XML valido.

Ecco alcuni tutorial per iniziare.

Hmmm, IMO, a meno che tu non voglia custodie, entrambi questi formati sono abbastanza facili da realizzare senza alcuna classe. Per esempio. per i feed RSS di un sito Web che gestisco, ho semplicemente scritto un piccolo modello Smarty e funziona abbastanza bene.

Per i set di caratteri non inglesi dai un'occhiata alla funzione PHP htmlentities: http://php.net/manual/en/function.htmlentities.php

Ho appena aggiunto per supportare il set di caratteri croato:

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

PHP Universal Feed Generator è una buona risposta. Ho dovuto modificare il codice di conseguenza in base a un commento sulla pagina Web per gestire correttamente i caratteri francesi.

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

  

Come dice Kereste (1. giugno) FeedWrite   crea problemi con alcuni non inglesi   caratteri utf-8 come & # 228; ecc. questo è   perché xml conosce solo 5 entità   (Amp &;, # 8221 &; &, # 8217 ;,). Quindi ho cambiato la riga 298 in   codice sorgente in

     

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

     

per evitare di convertire i charakter in   entità xml errate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top