Le premesse teoriche sono:
- hai un sito con una sezione che viene aggiornata più o meno regolarmente, ad esempio vengono postate delle notizie, o vengono inseriti dei prodotti
- vuoi creare un sistema di feed così che gli utenti possano essere a conoscenza degli aggiornamenti senza necessariamente doversi ricordare di visitare il sito
- decidi di creare il Feed RSS per le notizie
Le premesse tecniche sono:
- hai un sito sviluppato con php e mysql
- il database mysql utilizzato si chiama "basedati"
- la tabella interessata si chiama "news"...
- ... e contiene i campi "id, titolo, articolo, data_pubblicazione"
Ecco l'esempio, ampiamente perfezionabile, di come creare un Feed.
Crei un unico file e lo chiami ad esempio rss.php, dentro metti:
- una prima funzione che serve per ripulire il testo da eventuali caratteri poco graditi al linguaggio XML... il linguaggio del Feed RSS appunto. Questo riportato è un esempio, è possibile fare meglio ovviamente.
-
function rss_cleaner($text){
-
$text=utf8_encode(rtrim(ltrim(str_replace(array("’",">","<","\"","\n","\r","\t","<br />","<br>","<BR>"," "," ")," ",$text))));
-
return $text;
-
}
- l'intestazione del Feed
-
echo "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n";
-
echo "<channel>\n";
-
echo "<title>Il titolo del mio sito</title>\n";
-
echo "<link>http://www.ilmiosito.com</link>\n";
-
echo "<description>Una breve descrizione del sito o del feed</description>\n";
-
echo "<copyright> Copyright 2009 ilmiosito.com </copyright>\n";
-
echo "<docs>http://blogs.law.harvard.edu/tech/rss</docs>\n";
-
echo "<managingEditor>managingmail@ilmiosito.com (stefo)</managingEditor>\n";
-
echo "<webMaster>wmmail@ilmiosito.com (stefo)</webMaster>\n";
-
echo "<language>IT-it</language>\n";
- ed infine la lettura degli articoli e la stampa sul file
-
$db_host="miohostmysql"; // l'host mysql al quale mi connetto
-
$db_user="miousermysql"; // il mio utente mysql
-
$db_pass="miapassmysql"; // la mia password mysql
-
-
// ora mi connetto e seleziono il database
-
-
// seleziono le ultime 10 notizie pubblicate e le stampo in formato XML con un ciclo while
-
$query="select * from news ORDER BY ID DESC LIMIT 10";
-
-
$titolo=rss_cleaner($print['titolo']);
-
$articolo=rss_cleaner($print['articolo']);
-
$id=rss_cleaner($print['ID']);
-
$data_pubblicazione=$print['data_pubblicazione'];
-
$data_pubblicazione=date(r,$data_pubblicazione); // formatto la data secondo la RFC 822 gradita da XML
-
-
// parte la stampa
-
echo"
-
<item>
-
<title>$titolo</title>
-
<link>http://www.ilmiosito.com/articolo.php?ID=$id</link>
-
<guid isPermaLink=\"false\">http://www.ilmiosito.com/articolo.php?ID=$id</guid>
-
<pubDate>$data_pubblicazione</pubDate>
-
<description>$articolo</description>
-
</item>
-
";
-
-
}
-
echo"
-
</channel>
-
</rss>
-
";
Il Feed a questo punto è pronto, ultimi accorgimenti sono:
- indicare l'esistenza del Feed nelle intestazioni di pagina, prima della chiusura del tag head
-
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.ilmiosito.com/rss.php" />
-
</head>
e controllare la validità del Feed stesso: http://feedvalidator.org/
Creare un campo input select con possibilità di selezione multipla come questo qui a fianco non è un problema, può invece esserlo recuperare tutti i valori che vengono postati.
Ultimi Commenti