|
Come creare un feed rss.
Se vi state ponendo questa domanda vuol dire che attualmente il vostro sito web non ha la possibilità di creare feed automaticamente. Allora vediamo come è possibile farlo, in una prima analisi andremo a proporvi dei software che sono in grado di fare il lavoro per noi e cioè creare il nostro feed rss automaticamente. Li propongo in ordine di valore (parere personale naturalmente) avendoli provati entrambi.
Feed43 Feed43 è un servizio online che converte le pagine web HTML o documenti XML in feed RSS. Feed43 lo fa estraendo parti di codice HTML sulla base dei modelli specifici di un documento. Questi modelli aiutano Feed43 a capire quale contenuto estrarre dalla pagine e quale no. Questo permette un controllo più preciso di ciò che è contenuto in un feed. In generale è un prodotto che risulta molto utile a chi abbia un buon bagaglio tecnico ma non per coloro che non hanno conoscenza di codici. In Feed43 I passi per creare un feed RSS sono i seguenti: a) Identificare da quale pagina generare il feed RSS b) Creare un feed RSS su Feed43 puntando a quella pagina. c) Definire i modelli di ricerca richiesti. d) Specificare come deve essere il template finale. e) Generare il nuovo feed RSS. Il servizio è gratuito ma meno immediato del secondo che vi proponiamo FeedYes Benchè non sia perfetto, è davvero veloce e una volta che hai creato il primo feed, per tutti gli altri ti basteranno pochi secondi. FeedYes ti permette di fare tutto in tre passi a) fornendo l’URL della pagina da cui desideri creare il feed RSS automatico, b) indicando tra i link trovati da FeedYes nella URL, quale sia il primo che si riferisce alla sezione di contenuto che ti interessa (tutte le pagine web hanno differenti sezioni di contenuto e tu ad esempio non desideri creare un feed per la sezione commenti oppure per quella degli articoli recenti), c) indicando nella lista trovata da FeedYes quali siano i link rilevanti per le sezioni di contenuto che hai rilevato. Il servizio è gratuito per 14 giorni, dopo il feed verrà cancellato. Ora vediamo per i piu temerari come creare il proprio feed rss in casa utlizzando la solida accoppiata PHP MySql FEED RSS e PHP: PHP: Un feed è scritto con xml e solitamente è generato da un linguaggio dinamico. Generare un feed con PHP è estremamente semplice, basta dichiarare con la funzione header che stiamo per creare un foglio xml, e successivamente scrivere i tag che lo compongono.
Lo script che stiamo per analizzare crea un Feed RSS 2.0
Script:Inseriamo lo script ed analiziamolo in seguito (lo script in oggetto è molto simile a quello utilizzato nella nostra directory, ma non fatevi ingannare dalla lunghezza, creare un feed rss non è proibitivo). <?
header("Content-type: text/xml; charset=utf-8");//dichiaro che sto per scrivere una pagina in XML con php
echo ("<rss version="2.0">");//versione rss echo ("<channel>")//inizio channel echo ("<title> titolo feed </title>");//titolo rss echo("<link> http://www.vostrosito.it/index.php </link>");//link rss echo ("<description> descrizione feed </description>");//descrizione rss echo "<copyright> Copyright 2006 proprietariocontenuti </copyright>n";//copiright echo "<docs>http://blogs.law.harvard.edu/tech/rss</docs>n";//documento di informazione sulle specifiche dell'rss in oggetto echo "<managingEditor> email@vostrosito.it </managingEditor>n";//email del compilatore echo "<webMaster> email@vostrosito.it </webMaster>n";//email del webmaster echo ("<language>IT-it</language>");//linguaggio
$conn=@mysql_connect($host,$vostrouser,$vostrapassword);//le vostre variabili di connessione database $domanda=mysql_db_query($base,"select * from vostratabella ORDER BY ID DESC LIMIT 50 ",$conn);//estraggo gli ultimi 50 valori inseriti nel database e li ordino per ID (ID o qualunque altro nome colonna che indichi una data di inserimento) $numrss=mysql_num_rows($domanda);//$numrss è 50, inseriamo comunque un ciclo while di sicurezza $numrss2=0;
while($numrss2<$numrss){ $primodato=@mysql_result($domanda,$numrss2,"primodato");//primodato, secondodato e terzodato sono un nomi a caso, adesso dovete estarrre tutti i vostri dati dal database $secondodato=@mysql_result($domanda,$numrss2,"secondodato"); $terzodato=@mysql_result($domanda,$numrss2,"terzodato"); $quartodato=@mysql_result($domanda,$numrss2,"quartodato"); ..... echo " <item> <title>".$primodato."</title>";//titolo (con link vedi sotto) della prima informazione rss echo"<link>http://www.vostrosito.it/vostrapaginanews.php?m=.....</link>";//Link titolo. Potete anche inserire URL dinamici, ma SEMPRE ASSOLUTI (HTTP://www....) echo"<description>";//Inizio descrizione informazione echo"<![CDATA[";//Tutto quello racchiuso fra <![CDATA[ e ]]> sarà scritto a video echo"<font color="#C0C0C0">Articolo: ".$secondodato." </font> <br> <a href="http://www.tuosito.it/nomepagina.php?id=".$id."......"> <img src="".$terzodato."" height="75" width="104"><br> </a> ]]>";//fine <![CDATA] echo"</description>";//fine descrizione echo"<guid>http://tuosito.it/tuagagina.php?articolo=".$primodato."</guid>"; //Inserisci un URL univoco dell'informazione echo"<category domain="http://www.tuosito.it/ nomepaginacategoria.php?id=1&cat=".$quartodato.""> $quartodato</category>";//Inserisci la categoria dell'informazione echo"</item>";//fine item $numrss2++;//aumento $numrss2 per il ciclo while } echo "</channel></rss>";//fine channel e rss
?>
Per utilizzare lo script in oggetto ripulitelo dai commenti e variate url e variabili.
Semplifichiamo il tutto:Per ridurre problemi e dubbi riguardanti lo script sopra citato cercheremo di semplificare la stesura.
Per prima cosa create un file e salvatelo con il nome pagina_rss.php
1°) DATI SEMPRE NECESSARI: da copiare ed incollare nel file pagina_rss.php. <? header("Content-type: text/xml; charset=utf-8"); echo ("<rss version="2.0">"); echo ("<channel>") echo ("<title> vostro titolo </title>"); echo("<link>http://www.vostrosito.it/index.php</link>"); echo ("<description> descrizione rss </description>"); echo "<copyright> Copyright 2006 proprietarioontenuti </copyright>n"; echo "<docs>http://blogs.law.harvard.edu/tech/rss</docs>n"; echo "<managingEditor>email@vostrosito.it</managingEditor>n"; echo "<webMaster>email@vostrosito.it</webMaster>n"; echo ("<language>IT-it</language>");
Questi dati servono per creare l'impostazione iniziale del vostro feed e sono SEMPRE necessari.
2°) DATABASE: adesso dovete aprire una connessione con il Vs. database ed estrarre i dati necessari al feed. $conn=@mysql_connect($host,$vostrouser,$vostrapassword); $domanda=mysql_db_query($base,"select * from vostratabella ORDER BY ID DESC LIMIT 50 ",$conn); $numrss=mysql_num_rows($domanda); $numrss2=0;
while($numrss2<$numrss){ $primodato=@mysql_result($domanda,$numrss2,"primodato"); ..... ..... ..... $numrss2++; }
Dovete variare le righe nella tabella inserendo le impostazioni di collegamento al Vs. database ed i dati che vorrete estrarre.
3°) INSERIRE I DATI ESTRATTI NEL FEED: Nell'esempio sopra abbiamo inserito un ciclo while con delle righe vuote (.....). Al posto delle righe vuote dobbiamo inserire i dati appena estratti dal database seguendo uno schema predefinito. NON inseriremo un esempio ma soltanto lo schema da seguire. Per verificare guardate nell'esempio iniziale.
SCHEMA Dati RSS (in php) echo" <item> <title> vostro titolo </title> <link> http://www.vostrolink... </link> <description> vostradescrizione </description> <guid> http://www.linkdescrizionefeed... </guid> <category domain="http://www.linkcategoriafeed..." </category> </item> ";
Questa riga si ripetarà per ogni riperizione del ciclo while. Lo schema in oggetto può essere implementato con altri tag, date uno sguardo alle specifiche RSS 2.0.
4°) CHIUSURA FEED: Per chiudere il feed basta copiare le righe sottostanti alla fine del foglio pagina_rss.php (sotto la parentesi graffa del ciclo while). echo" </channel> </rss> "; ?>
ERRORI:In XML come in altri linguaggi ci sono alcune parole riservate, ed alcune regole sintattiche da rispettare. XML non transige come l'html su tali regole e pertanto è opportuno rispettarle per eliminare gli errori a video o la mancata visualizzazione del feed. La funzione riportata di seguito vi aiuta a ripulire il testo estratto dal database per renderlo idoneo all'XML. function puliscirss($dato){ $dato=html_entity_decode(strip_tags($dato)); $dato=utf8_encode(ltrim(rtrim(str_replace(array(">","<",""","n","r","t","<br />","<br>","<br >"," "," "," "," "," "," "," ","")," ",$dato)))); $dato=str_replace(array("&"),"e",$dato); return $dato; }
Inserite questa funzione all'inizio del foglio e richiamatela ogni volta che estraete un dato dal database.
La riga nell'esempio: $secondodato=@mysql_result($domanda,$numrss2,"secondodato");
diventa: $secondodato=puliscirss(@mysql_result($domanda,$numrss2,"secondodato")); Articolo inspirato dalla lettura di AllWebFree MasterNewMedia
Inserisci un LINK al Tuo SITO in questo articolo! Novità!
|