Creare atom feed in modo dinamico in php
Posted on 01. May, 2006 by Administrator in php, tutorials
Obiettivo
In questo articolo tratteremo come creare atom feed in modo dinamico.
Articolo
La prima cosa che dobbiamo fare e' creare un file php chiamato ad esempio "feed.php". Poi cominciamo a impostare
l'header del documento
<?
header ("Content-type: text/xml");
echo ("<?xml version=\"1.0\" encoding=\"UTF-8\"?>n");
?>
Come seconda cosa, generiamo una funzione che setta la data in modo da poter essere compatibile con lo standard
<?
function get_date_from_int($int_date) {
$date_mod = date('Y-m-dTH:i:s', $int_date);
$pre_timezone = date('O', $int_date);
$time_zone = substr($pre_timezone, 0, 3).":".substr($pre_timezone, 3, 2);
$date_mod .= $time_zone;
return $date_mod;
}
?>
Se dovessimo avere un contenuto statico del nostro feed, esso assomiglierebbe a questo codice:
<feed xmlns="http://www.w3.org/2005/Atom">
<title>feed title</title>
<link rel="self" href="http://www.sito.it/fedd.php"/>
<updated><?=get_date_from_int(time())?></updated>
<author>
<name>Author Name</name>
<email>autore@sito.it</email>
<uri>http://www.sito.it</uri>
</author>
<id>http://www.sito.it</id>
?>
Fatto cio' vediamo come fare per rendere il tutto dinamico
Creiamo la nostra tabella "articoli" in cui mettiamo come campi:
id
title
text
datetime
E adesso creiamo lo script che legge i dati dalla tabella e crea il feed
<?
db_host = "localhost";
$db_name = ""; //database name
$db_user = ""; //database user
$db_pass = ""; //user password
$db_connection = mysql_connect($db_host,$db_user,$db_pass) or die("errore");
mysql_select_db($db_name,$db_connection) or die("errore");
$result = mysql_query("SELECT * FROM `articoli` ORDER BY `id` DESC") or die (mysql_error());
while ($row = mysql_fetch_array ($result)) {
echo "<entry>
<title>".$row[1]."</title>
<link href=\"http://www.sito.it/".$row[0]."\"/>
<id>http://www.sito.it/articolo/?id=".$row[0]."</id>
<updated>".get_date_from_int(time()+$row[3])."</updated>
<summary type=\"xhtml\">".$row[2]."</summary>
</entry>";
}
?>
Per farlo funzionare nel nostro sito, basta aggiungere questa riga nella nostra/e pagine
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="feed.php" />




Leave a reply