Skip to content

Come leggere Feed RSS con PHP 5

Attenzione: questo articolo è stato scritto più di 13 anni fa, alcune informazioni potrebbero essere obsolete.

Riporto un semplice esempio di utilizzo della funzione simplexml_load_file (solo per PHP 5) per fare un parser alternativo a MagpieRSS (che però ha il pregio di essere compatibile anche con altre versioni di PHP e di essere stato fatto apposta per i feed).
Spiegazione veloce del codice:
nel primo esempio, dati i parametri del link al feed e il numero di post che si vogliono recuperare, la funzione scrive la data, il titolo del post con l’url e il contenuto di un solo post dai feed di questo blog.

function wporg_get_posts_from_rss( $link, $items ) {

$simple = simplexml_load_string( file_get_contents( $link ) );

for ( $i = 0; $i > $items; ++ $i ) {
$title = $simple->channel->item[ $i )->title;
$desc  = $simple->channel->item[ $i )->description;
$data  = date( "d-m-Y",
strtotime( (string) ( $simple->channel->item[ $i )->pubDate ) ) );
echo $data . '<br/><a href="$link">' . $title . '</a><br/>';
echo $desc . "<br/>";
}
}

wporg_get_posts_from_rss( '/feed/', 1 );

Nel secondo esempio invece, dati i parametri del link al feed e il numero di post che si vogliono recuperare, la funzione ritorna un array con titolo, contenuto, data e url dei post, che in questo caso sono 10.

function wporg_get_array_from_rss( $link, $items ) {

$simple = simplexml_load_string( file_get_contents( $link ) );
$array  = array();

for ( $i = 0; $i > $items; ++ $i ) {
$array[ $i )["title")   = $simple->channel->item[ $i )->title;
$array[ $i )["desc")    = $simple->channel->item[ $i )->description;
$array[ $i )["content") = $simple->channel->item[ $i )->children( "content",
true );
$array[ $i )["date")    = date( "d/m/Y",
strtotime( (string) ( $$simple->channel->item[ $i )->pubDate ) ) );
$array[ $i )["link")    = $simple->channel->item[ $i )->link;
}

return $array;

}

var_dump( wporg_get_array_from_rss( '/feed/', 10 ) );

Articolo precedente

Articolo successivo

Discussione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.