Primeiro criamos a classe que vai conter os posts e todos os atributos, em seguida criaremos a classe que manipulará o feed de notícias, para tal utilizaremos o simplexml que interpreta um arquivo XML e o transforma em um objeto.

Esse post foi uma sugestão do Gerson, e, nós vamos utilizar a função daquele mesmo post nesse aqui.

A Classe BlogPost

Nessa classe vamos colocar os atributos de um post no feed rss, que são data, link, título, texto e um atributo disponibilidade para exibir se o post está disponível ou não.

<?php  
class BlogPost  
{
    var $data;
    var $ts;
    var $link;
    var $titulo;
    var $texto;
    var $disponibilidade;
}

A Classe BlogFeed

Agora criaremos uma classe para preencher os objetos da classe BlogPost, que terá um construtor que recebe por parâmetro a url do feed de notícias. Para isso vamos utilizar o simplexmlloadfile.

class BlogFeed  
{
    var $posts = array();

    function __construct($file_or_url)
    {
        $file_or_url = $this->resolverArquivo($file_or_url);
        if (!($x = simplexml_load_file($file_or_url)))
            return;

        foreach ($x->channel->item as $item)
        {
            $post = new BlogPost();
            $post->data             = (string) $item->postsubDate;
            $post->ts               = strtotime($item->pubDate);
            $post->link             = (string) $item->link;
            $post->titulo           = (string) $item->title;
            $post->texto            = (string) $item->description;
            $post->disponibilidade = $this->verificarDisponibilidade($item->link);

            // Create summary as a shortened body and remove images,
            // extraneous line breaks, etc.
            $post->summary = $this->resumirTexto($post->texto);

            $this->posts[] = $post;
        }
    }

    private function resolverArquivo($file_or_url) {
        if (!preg_match('|^https?:|', $file_or_url))
            $feed_uri = $_SERVER['DOCUMENT_ROOT'] .'/shared/xml/'. $file_or_url;
        else
            $feed_uri = $file_or_url;

        return $feed_uri;
    }

    private function resumirTexto($summary) {
        $summary = strip_tags($summary);

        $max_len = 100;
        if (strlen($summary) > $max_len)
            $summary = substr($summary, 0, $max_len) . '...';

        return $summary;
    }

    private function verificarDisponibilidade($url) {
        $ch = @curl_init($url);
        @curl_setopt($ch, CURLOPT_HEADER, TRUE);
        @curl_setopt($ch, CURLOPT_NOBODY, TRUE);
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $status = array();
        preg_match('/HTTP\/.* ([0-9]+) .*/', @curl_exec($ch) , $status);
        return ($status[1] == 200) ? "YES" : "NO" ;
    }
}

Como utilizar

Como vocês já devem ter percebido esse post é pra ser uma dica rápida, então para utilizar é simples.

$feed = new BlogFeed("http://blog.adlerdias.eti.br/rss");

foreach ($feed as $posts) {  
    foreach ($posts as $post) {
        echo $post->avaliable . " - " . $post->link . "\n";
    }
}

Juntando Tudo

<?php  
class BlogPost  
{
    var $data;
    var $ts;
    var $link;
    var $titulo;
    var $texto;
    var $disponibilidade;
}

class BlogFeed  
{
    var $posts = array();

    function __construct($file_or_url)
    {
        $file_or_url = $this->resolverArquivo($file_or_url);
        if (!($x = simplexml_load_file($file_or_url)))
            return;

        foreach ($x->channel->item as $item)
        {
            $post = new BlogPost();
            $post->data             = (string) $item->postsubDate;
            $post->ts               = strtotime($item->pubDate);
            $post->link             = (string) $item->link;
            $post->titulo           = (string) $item->title;
            $post->texto            = (string) $item->description;
            $post->disponibilidade = $this->verificarDisponibilidade($item->link);

            // Create summary as a shortened body and remove images,
            // extraneous line breaks, etc.
            $post->summary = $this->resumirTexto($post->texto);

            $this->posts[] = $post;
        }
    }

    private function resolverArquivo($file_or_url) {
        if (!preg_match('|^https?:|', $file_or_url))
            $feed_uri = $_SERVER['DOCUMENT_ROOT'] .'/shared/xml/'. $file_or_url;
        else
            $feed_uri = $file_or_url;

        return $feed_uri;
    }

    private function resumirTexto($summary) {
        $summary = strip_tags($summary);

        $max_len = 100;
        if (strlen($summary) > $max_len)
            $summary = substr($summary, 0, $max_len) . '...';

        return $summary;
    }

    private function verificarDisponibilidade($url) {
        $ch = @curl_init($url);
        @curl_setopt($ch, CURLOPT_HEADER, TRUE);
        @curl_setopt($ch, CURLOPT_NOBODY, TRUE);
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
        @curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $status = array();
        preg_match('/HTTP\/.* ([0-9]+) .*/', @curl_exec($ch) , $status);
        return ($status[1] == 200) ? "YES" : "NO" ;
    }
}

$feed = new BlogFeed("http://blog.adlerdias.eti.br/rss");

foreach ($feed as $posts) {  
    foreach ($posts as $post) {
        echo $post->disponibilidade . " - " . $post->link . "\n";
    }
}

Caso tenha alguma dúvida é só deixar nos comentários.