av freiholtz » 2006-06-06 10.09
Jag har gjort en php klass för att skapa rss filer från tex en blogg.
Så om man gör en blogg kan man enkelt samtidigt uppdatera en RSS fil.
En RSS fil är något som används för att följa nyhetsflöden i en extern nyhetsläsare, man kan alltså prenumerera på bloggen och läsa den i samma skal som man läser alla sina andra nyheter och direkt få en signal eller liknande när en ny nyhet har lagts till.
Här är den om nån är intresserad.
[code]
<?
class RSS_Writer{
var $title;
var $description;
var $url;
var $pubDate;
var $lastBuildDate;
var $language;
var $copyright;
var $webMaster;
var $managingEditor;
var $category;
var $generator;
var $ttl;
var $docs;
var $image_url;
var $width;
var $height;
var $items;
function RSS_Writer($title,$description,$url,$pubDate,$lastBuildDate,$language,$copyright,$webMaster,$managingEditor,$category,$generator,$ttl,$docs,$image_url,$width,$height){
$this->title = $title;
$this->description = $description;
$this->url = $url;
$this->pubDate = $pubDate; // RFC 2822 formated
$this->lastBuildDate = $lastBuildDate;// RFC 2822 formated
$this->language = $language;
$this->copyright = $copyright;
$this->webMaster = $webMaster;
$this->managingEditor = $managingEditor;;
$this->category = $category;
$this->generator = $generator;
$this->ttl = $ttl; // in min
$this->docs = $docs;
$this->image_url = $image_url;
$this->width = $width;
$this->height = $height;
$this->items = array(); // this array will be loaded with items before write function is used
}
function load($title,$ingress,$date,$url){
$this->items[] = array("title"=>$title,"ingress"=>$ingress,"date"=>$date,"url"=>$url);
}
function write($filename="rss.xml"){
// init output string with xml header
$string = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?><rss version=\"2.0\">";
// add channel data
$string .=
"<channel>".
"<title>".$this->title."</title>".
"<description>".$this->description."</description>".
"<link>".$this->url."</link>".
"<pubDate>".$this->pubDate."</pubDate>".
"<lastBuildDate>".$this->lastBuildDate."</lastBuildDate>".
"<language>".$this->language."</language>".
"<copyright>".$this->copyright."</copyright>".
"<webMaster>".$this->webMaster."</webMaster>".
"<managingEditor>".$this->managingEditor."</managingEditor>".
"<category>".$this->category."</category>".
"<generator>".$this->generator."</generator>".
"<ttl>".$this->ttl."</ttl>".
"<docs>".$this->docs."</docs> ";
// add image
$string .=
"<image>".
"<title>".$this->title."</title>".
"<description>".$this->description."</description>".
"<url>".$this->image_url."</url>".
"<width>".$this->width."</width>".
"<height>".$this->height."</height>".
"<link>".$this->url."</link>".
"</image>";
// add items
foreach($this->items as $item){
$string .=
"<item>".
"<title>".$item['title']."</title>".
"<description>".htmlspecialchars($item['ingress'])."</description>".
"<link>".$item['url']."</link>".
"<pubDate>".$item['date']."</pubDate>".
"</item>";
}
// close output string
$string .= "</channel></rss>";
if($filename=="screen"){
echo $string;
}else{
// open output file
$file_handle = fopen($filename, "w");
fwrite($file_handle,$string);
fclose($file_handle);
}
}
}
?>
[/code]
Jag har gjort en php klass för att skapa rss filer från tex en blogg.
Så om man gör en blogg kan man enkelt samtidigt uppdatera en RSS fil.
En RSS fil är något som används för att följa nyhetsflöden i en extern nyhetsläsare, man kan alltså prenumerera på bloggen och läsa den i samma skal som man läser alla sina andra nyheter och direkt få en signal eller liknande när en ny nyhet har lagts till.
Här är den om nån är intresserad.
[code]
<?
class RSS_Writer{
var $title;
var $description;
var $url;
var $pubDate;
var $lastBuildDate;
var $language;
var $copyright;
var $webMaster;
var $managingEditor;
var $category;
var $generator;
var $ttl;
var $docs;
var $image_url;
var $width;
var $height;
var $items;
function RSS_Writer($title,$description,$url,$pubDate,$lastBuildDate,$language,$copyright,$webMaster,$managingEditor,$category,$generator,$ttl,$docs,$image_url,$width,$height){
$this->title = $title;
$this->description = $description;
$this->url = $url;
$this->pubDate = $pubDate; // RFC 2822 formated
$this->lastBuildDate = $lastBuildDate;// RFC 2822 formated
$this->language = $language;
$this->copyright = $copyright;
$this->webMaster = $webMaster;
$this->managingEditor = $managingEditor;;
$this->category = $category;
$this->generator = $generator;
$this->ttl = $ttl; // in min
$this->docs = $docs;
$this->image_url = $image_url;
$this->width = $width;
$this->height = $height;
$this->items = array(); // this array will be loaded with items before write function is used
}
function load($title,$ingress,$date,$url){
$this->items[] = array("title"=>$title,"ingress"=>$ingress,"date"=>$date,"url"=>$url);
}
function write($filename="rss.xml"){
// init output string with xml header
$string = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?><rss version=\"2.0\">";
// add channel data
$string .=
"<channel>".
"<title>".$this->title."</title>".
"<description>".$this->description."</description>".
"<link>".$this->url."</link>".
"<pubDate>".$this->pubDate."</pubDate>".
"<lastBuildDate>".$this->lastBuildDate."</lastBuildDate>".
"<language>".$this->language."</language>".
"<copyright>".$this->copyright."</copyright>".
"<webMaster>".$this->webMaster."</webMaster>".
"<managingEditor>".$this->managingEditor."</managingEditor>".
"<category>".$this->category."</category>".
"<generator>".$this->generator."</generator>".
"<ttl>".$this->ttl."</ttl>".
"<docs>".$this->docs."</docs> ";
// add image
$string .=
"<image>".
"<title>".$this->title."</title>".
"<description>".$this->description."</description>".
"<url>".$this->image_url."</url>".
"<width>".$this->width."</width>".
"<height>".$this->height."</height>".
"<link>".$this->url."</link>".
"</image>";
// add items
foreach($this->items as $item){
$string .=
"<item>".
"<title>".$item['title']."</title>".
"<description>".htmlspecialchars($item['ingress'])."</description>".
"<link>".$item['url']."</link>".
"<pubDate>".$item['date']."</pubDate>".
"</item>";
}
// close output string
$string .= "</channel></rss>";
if($filename=="screen"){
echo $string;
}else{
// open output file
$file_handle = fopen($filename, "w");
fwrite($file_handle,$string);
fclose($file_handle);
}
}
}
?>
[/code]