21 Giugno 2010
Attenzione: questo articolo è stato scritto più di 12 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 ) );