Leggi argomento - Creazione feed rss tramite classe php

Vuoi partecipare? RegistratiRegistrati al forum!

Creazione feed rss tramite classe php

 
Nuovo argomento   Rispondi    Indice del forum -> Creare, scrivere e pubblicare feed
Precedente :: Successivo  
Autore Messaggio
erosdettorre
Utente


Registrato: 08/04/07 20:20
Messaggi: 4

MessaggioInviato: Dom Apr 08, 2007 8:29 pm    Oggetto: Creazione feed rss tramite classe php Rispondi citando

vorrei creare un feed rss (file .xml) in cui inserire post tratti da diversi blog
ho trovato questa classe in php ma non so come creare il file xml direttamente sul mio desktop

ci sono due file : class.rss.php e output.php

class.rss.php

<?php

class MakeRSS
{
var $Articles = array();

// Channel info
var $title = '';
var $link = '';
var $description = '';
var $optional = array();
var $image = array('url' => '', 'title' => '', 'link' => '', 'description' => '', 'w' => 0, 'h' => 0);

function MakeRSS($title, $link, $description, $optional = '')
{
$this->title = $title;
$this->link = $link;
$this->description = $description;

if( is_array($optional) and count($optional) ){
$this->optional = $optional;
}
}

function AddOptional($key, $value)
{
$this->optional[$key] = $value;
}

function AddImage($title, $url, $link, $description = '')
{
$this->image['title'] = $title;
$this->image['url'] = $url;
$this->image['link'] = $link;
$this->image['description'] = $description;

if( $tmp = @getimagesize($url) ){
$this->image['w'] = ($tmp[0] > 144) ? 144 : $tmp[0];
$this->image['h'] = ($tmp[1] > 400) ? 400 : $tmp[1];
}
}

function AddArticle($title, $link, $description, $author, $optional = '')
{
// inserisce un nuovo articolo
$i = array_push($this->Articles, array('title' => $title, 'link' => $link, 'description' => $description, 'author' => $author));

// aggiunge le coppie chiave valore opzionali
// all'articolo appena inserito
if( is_array($optional) and count($optional) )
{
--$i;
while( list($k, $v) = each($optional) ){
$this->Articles[$i][$k] = $v;
}
}
}

function Output($save = false, $path = '')
{
$out = '<?xml version="1.0"?>' . "\n" .
'<rss version="2.0">' . "\n" .
'<channel>' . "\n";

$out .= "<title>$this->title</title>\n" .
"<link>$this->link</link>\n" .
"<description>$this->description</description>\n";

// Channel optionals
if( is_array($this->optional) and count($this->optional) )
{
while( list($k, $v) = each($this->optional) ){
$out .= "<$k>$v</$k>\n";
}
}

// Image
if( $this->image['title'] and $this->image['url'] and $this->image['link'] )
{
$out .= "<image>\n" .
"<title>>" . $this->image['title'] . "</title>\n" .
"<url>" . $this->image['url'] . "</url>\n" .
"<link>" . $this->image['link'] . "</link>\n";

if( $this->image['description'] ) {
$out .= "<description>" . $this->image['description'] . "</description>\n";
}

if( $this->image['w'] and $this->image['h'] ) {
$out .= "<width>" . $this->image['w'] . "</width>\n" .
"<height>" . $this->image['h'] . "</height>\n";
}
$out .= "</image>\n";
}

// per ogni item stampa tutte le coppie chiave valore
for( $i = 0, $c = count($this->Articles); $i < $c; $i++ ){
$out .= "<item>\n";

while(list($k, $v) = each($this->Articles[$i]))
{
$out .= "<".$k.">".$v."</".$k.">\n";
}

$out .= "</item>\n";
}

$out .= "</channel>\n</rss>";

// True output
if( !$save or !$path ){
header("Content-type: application/xml");
echo $out;
return true;
}
else
{
$fh = fopen($path, 'w');
if($fh) {
fwrite($fh, $out);
fclose($fh);
return true;
}
return false;
}
}
}
?>

output.php

include('class.rss.php'); $r = new MakeRSS('Feed RSS di freephp.html.it', 'http://freephp.html.it', 'News riguardanti il mondo del php');
$r->AddArticle('Articolo 1', 'http://www.downloadblog.it/post/3775/3775', 'Ottimo articolo 1', 'Freephp.html.it');
$r->Output(true, 'rss.xml');
Top
Profilo Invia messaggio privato
weppos
Amministratore


Registrato: 20/05/06 17:34
Messaggi: 296

MessaggioInviato: Mar Apr 10, 2007 2:06 pm    Oggetto: Rispondi citando

I contenuti da inserire nel feed dove li prendi?
Sono in un db? In un file o altrove?
Top
Profilo Invia messaggio privato
erosdettorre
Utente


Registrato: 08/04/07 20:20
Messaggi: 4

MessaggioInviato: Mar Apr 10, 2007 4:53 pm    Oggetto: Rispondi citando

weppos ha scritto:
I contenuti da inserire nel feed dove li prendi?
Sono in un db? In un file o altrove?


da feed di altri blog
Top
Profilo Invia messaggio privato
weppos
Amministratore


Registrato: 20/05/06 17:34
Messaggi: 296

MessaggioInviato: Ven Apr 13, 2007 11:16 am    Oggetto: Rispondi citando

Allora il tutto si complica.
Posso darti un supporto, ma tu come te la cavi con PHP?
Top
Profilo Invia messaggio privato
erosdettorre
Utente


Registrato: 08/04/07 20:20
Messaggi: 4

MessaggioInviato: Ven Apr 13, 2007 2:46 pm    Oggetto: Rispondi citando

weppos ha scritto:
Allora il tutto si complica.
Posso darti un supporto, ma tu come te la cavi con PHP?

piu o meno bene
Top
Profilo Invia messaggio privato
erosdettorre
Utente


Registrato: 08/04/07 20:20
Messaggi: 4

MessaggioInviato: Ven Mag 11, 2007 7:10 pm    Oggetto: weppos aiuto !!!!!!!! Rispondi citando

erosdettorre ha scritto:
weppos ha scritto:
Allora il tutto si complica.
Posso darti un supporto, ma tu come te la cavi con PHP?

piu o meno bene


weppos aiuto !!!!!!!!
Top
Profilo Invia messaggio privato
weppos
Amministratore


Registrato: 20/05/06 17:34
Messaggi: 296

MessaggioInviato: Gio Mag 31, 2007 5:09 pm    Oggetto: Rispondi citando

Il procedimento è semplice.

Per prima cosa devi creare uno script che legga periodicamente gli item dai feed che desideri.
Il contenuto dovrai salvarlo da qualche parte, possibilmente in un db per ragioni di comodità.

Infine, dovrai creare una procedura che ti scriva il file XML finale, ovvero il feed.
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Creare, scrivere e pubblicare feed Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi