Feed RSS: generare un feed in PHP
31/05/2013I feed RSS sono uno strumento necessario per fornire agli utenti una serie di contenuti aggiornati di frequente.
I feed consentono agli utenti di iscriversi e ricevere le notizie pubblicate su blog e siti direttamente 'a casa', senza dover aprire il browser e andare a scoprire sito per sito dove ci siano delle novità.
Iscrivendosi a un feed, gli utenti non rivelano il loro indirizzo di posta elettronica e non si espongono alle minacce di spam, virus, phishing.
L'iscritto che vuole interrompere la ricezione di notizie, non è obbligato a inviare richieste di annullamento ma è sufficinete che rimuova il feed dal proprio aggregatore.
I feed utilizzano il formato XML.
Se vogliamo 'costruire' un un nostro feed dinamico attraverso il linguaggio PHP dobbiamo seguire poche semplici regole.
Ecco un listato di esempio attraverso cui realizzare un feed, come sempre da personalizzare e customizzare!
// Eseguo le operazioni di connessione al database MySQL
include('conn.inc');
// Includo la funzione che crea una'nteprima delle prime righe del contenuto dell'articolo
include('anteprima.php');
// Ricavo la data attuale e invio la query di selezione
$ora = mktime();
$selezione_dati = "SELECT * FROM nometabella where nomecampodata <= $ora ORDER BY ID DESC";
$query = mysql_query($selezione_dati) or die(mysql_error());
// Modifico l'intestazione e il tipo di documento da PHP a XML
header("Content-type: text/xml; charset=utf-8");
echo "\n";
// Eseguo le operazioni di scrittura sul file
echo "";
echo "\n";
echo "I Feed del mio sito\n";
echo "http://www.dominio.tld/feed.php\n";
echo "descrizione\n";
echo "Copyright 2013 mio sito\n";
echo "http://blogs.law.harvard.edu/tech/rss\n";
echo "miaemail@dominio.tld (Nome Cognome)\n";
echo "webmaster@dominio.tld (Nome Cognome)\n";
echo "IT-it\n";
echo "\n";
// Imposto il ciclo di lettura dei post
while($array = mysql_fetch_array($query)) {
extract($array);
$descrizione = @anteprima($nomecampoarticolo);
$titolo = strip_tags($nomecampotitolo);
// eventuali regexp per 'pulire' il testo ricavato
$titolo = html_entity_decode($titolo, ENT_QUOTES, 'UTF-8');
$descrizione = html_entity_decode($descrizione, ENT_QUOTES, 'UTF-8');
echo "
$titolo
http://www.dominio.tld/nomefile.php?id=$id
$descrizione
\n";
}
// Chiudo l'Xml
echo "\n";