RSS Syndication · 5 min read · Sep 14, 2025

Facile Syndication RSS con MagpieRSS

Facile Syndication RSS con MagpieRSS

Cos’è MagpieRSS?

MagpieRSS, affettuosamente conosciuto come Magpie, è un parser RSS e Atom per PHP. Ti consente di visualizzare i nuovi articoli dai siti web con feed RSS o Atom sul tuo sito. Questo è un ottimo modo per aggiungere informazioni nuove, fresche e pertinenti al tuo sito. Analizza RSS 0.9, RSS 1.0 e ha un certo supporto per RSS 2.0 così come Atom 0.3.

Di cosa ho bisogno per usare Magpie?

Per utilizzare Magpie, il tuo server deve supportare PHP versione 4.2.0 con supporto XML, o PHP5 con supporto libxml2. Dopo di che, configurare e utilizzare Magpie è un gioco da ragazzi.

Ok, ho sentito abbastanza, dove posso scaricarlo?

Puoi scaricare Magpie da SourceForge cliccando qui.

E adesso?

Semplicemente estrai il file e carica i seguenti file sul tuo server: rss_fetch.inc, rss_parser.inc, rss_cache.inc e rss_utils.inc e l’intera directory chiamata extlib. Puoi mettere questi file in qualsiasi directory nella radice del tuo server web. Di solito li carico in una directory chiamata rss.

Successivamente, devi decidere dove vuoi che vada il contenuto sindacato. Ad esempio, se desideri sindacare contenuti sull’indice di www.example.com, dovrai modificare il file index.html(php). Se il tuo file non termina in php, dovrai cambiarlo affinché lo faccia, poiché aggiungeremo codice php.

Successivamente, modificheremo effettivamente il file index.php. Dobbiamo aggiungere il seguente codice in cima alla pagina su cui vuoi visualizzare i feed:

Si prega di notare che il tuo percorso potrebbe essere diverso a seconda di come hai nominato la directory e dove si trova il tuo index.php nell’albero. Per aggiungere effettivamente i feed alla tua pagina, devi anche aggiungere le seguenti righe per recuperare e analizzare l’RSS:

e sostituire l’indirizzo con l’indirizzo del feed che desideri visualizzare.

Questo restituirà un array, $rss che include il contenuto sindacato così come alcune informazioni sull’editore. Le altre informazioni restituite (di solito) sono il nome dell’editore, memorizzato in $rss->channel[‘title’], una descrizione dell’editore memorizzata in $rss->channel[‘description’], e un link generale all’editore memorizzato in $rss->channel[‘link’].

Gli elementi possono essere accessibili tramite $rss->items e un semplice ciclo può essere utilizzato per attraversare gli elementi uno alla volta. Il codice per il ciclo è:

foreach ($rss->items as $item)  
        { // Codice per manipolare gli elementi qui  
        }

Ogni elemento contiene un titolo, un link e una descrizione. $item[‘title’] contiene il titolo dell’articolo, $item[‘link’] è il link all’originale e $item[‘description’] è la descrizione della storia che è spesso le prime righe di contenuto. Un elenco di base del contenuto sindacato può essere ottenuto utilizzando il seguente codice:

channel['link'].">".$rss->channel['title']."";  
foreach ($rss->items as $item) {  
        $href = $item['link'];  
        $title = $item['title'];  
        $desc = $item['description'];  
        echo "  

$title
"; if($desc) echo $desc; }?>

Questo è piuttosto basilare, ma dovresti essere in grado di personalizzarlo per soddisfare le tue esigenze.

Problemi e Soluzioni Generali

Il contenuto sindacato è troppo lungo per il mio sito.

Se il contenuto che stai sindacando è troppo lungo o contiene troppi elementi e inizia a far sembrare strano il tuo sito, puoi semplicemente aggiungere le seguenti righe per impostare il numero di voci visualizzate e impostare la lunghezza della descrizione.

$items = array_slice($rss->items, 0, 5);

Questa riga restituisce solo un sottoinsieme del feed, in questo caso solo le prime 5 voci. Per accorciare la descrizione, utilizzeresti le seguenti righe:

if (strlen($desc) >= 100)  
{  
        $desc = substr($desc,0,99)."...";  
}

Ciò che fa è controllare se la lunghezza della stringa per la descrizione è superiore a 100 caratteri, che se lo è, visualizzerà i primi 99 e … dopo per far sapere al lettore che continua.

Vorrei abilitare la cache dei feed per ridurre la larghezza di banda e velocizzare il caricamento. È possibile?

Certo! Magpie ha la cache abilitata per impostazione predefinita, ma probabilmente dovrai cambiare la directory in cui memorizza la cache e renderla scrivibile dall’utente con cui il server viene eseguito. Cerca di scrivere nella directory di lavoro in cui viene chiamato lo script. Ad esempio, se aggiungi il feed alla tua homepage, lo script tenta di creare la directory della cache nella radice del tuo server. Le seguenti righe abilitano la cache e impostano la directory in cui memorizza la cache:

define('MAGPIE_CACHE_DIR', '/tmp/magpie_cache');  
define('MAGPIE_CACHE_ON', 1);

Per impostazione predefinita, Magpie memorizza nella cache solo gli elementi per un’ora, ma questo può essere cambiato con la seguente riga:

define('MAGPIE_CACHE_AGE', 1800);

Questo imposta Magpie per memorizzare nella cache gli elementi per 30 minuti. È importante notare che l’intervallo è specificato in secondi.

Ok, ho aggiunto quelle righe, ma la cache non funziona ancora!

Devi assicurarti che la directory in cui hai impostato la cache esista ed è scrivibile dall’utente con cui il server viene eseguito. In Debian è www-data. Mi dispiace, ma non so quale utente apache venga eseguito per impostazione predefinita su altre distribuzioni. Puoi farlo con i seguenti comandi (come root):

mkdir /tmp/magpie_cache  
chown www-data:www-data /tmp/magpie_cache

Si prega di notare che la cache non deve trovarsi in /tmp ed è effettivamente una buona idea cambiarla se utilizzi un hosting condiviso. Dopo di che, aggiorna la pagina e dovresti vedere alcuni file con nomi molto strani nella directory della cache. Se lo fai, tutto va bene. Se no, ti preghiamo di fare riferimento alle FAQ sulla Homepage di MagpieRSS.

Mettere tutto insieme

Le seguenti sono come le opzioni dovrebbero essere combinate, ed è un esempio funzionante con piccole modifiche dal mio sito.

items, 0, 5);  
foreach ($items as $item) {  
        $href = $item['link'];  
        $title = $item['title'];  
        $desc = $item['description'];  
        echo "  

$title
"; if($desc) if (strlen($desc) >= 125) { $desc = substr($desc,0,124)."..."; } echo $desc; } ; ?>

Questo recupera il feed da www.digg.com nella sezione Linux e visualizza le prime 5 voci con una descrizione lunga 125 caratteri. Memorizza anche nella cache nella directory /var/cache con il tempo di cache predefinito di 1 ora.

Ecco fatto, syndication RSS rapida e facile con MagpieRSS! Se hai bisogno di ulteriori informazioni, aiuto o qualsiasi altra cosa, ti incoraggio vivamente a controllare la Homepage di MagpieRSS. Hanno anche una mailing list attiva e mantengono archivi che hanno risposto alle mie domande ogni volta che ho avuto bisogno di aiuto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.