Leitor de RSS O.O.
Publicado por Diogo Souza da Silva 02/05/2007
[ Hits: 8.737 ]
Homepage: www.manfiesto.blog.br
Desenvolvi um pequeno leitor de RSS em php usando Orientação a Objetos. É um script bem simples que recebe um xml como parâmetro, carrega as informação do rss e as exibe de forma bem simplificada.
Junto coloquei uma classe estendendo a classe principal(rss) para uma caixa com formatação. O script depende do xmlize.php de www.hansanderson.com
O script é facilmente extensivel.
<?php
/*
Função para leitura de RSS via PHP
Gera um output padrão, que pode ser formatado
Requer a funcao xmlize "by Hans Anderson, www.hansanderson.com/contact/"
Enjoy
By http://www.manifesto.blog.br/
*/
require_once("xmlize.php") ;
class rss {
function rss($a) {
// $a deve ser o caminho para o rss
// Primeiro armazenamos o xml
$data = file_get_contents($a) ;
$info = xmlize($data);
$this->title = $info["rss"]["#"]["channel"][0]["#"]["title"][0]["#"]; // Titulo do RSS
$this->link =$info["rss"]["#"]["channel"][0]["#"]["link"][0]["#"] ; // Link para a pagina
$this->itens = $info["rss"]["#"]["channel"][0]["#"]["item"]; // Conteudo do RSS
}
function leitor() {
// Funcao que le o rss e gera uma caixa sem formatação
$itens = $this->itens ;
$output = "<div class='rss_container'><h3><a href='".$this->link."' > ";
$output .= $this->title."</a></h3><div class='rss_inner'><dl>";
for($i = 0; $i < sizeof($itens); $i++) {
$link = $itens[$i]["#"]["link"][0]["#"] ;
$data = $itens[$i]["#"]["datePosted"][0]["#"] ;
$titulo = $itens[$i]["#"]["title"][0]["#"] ;
$titulo = $itens[$i]["#"]["title"][0]["#"] ;
$output .= "<dt><a href='$link'>$titulo</a> :: ($data) </dt>";
}
$output .= "</dl></div></div>" ;
return $output ; // Ele retorna o código da caixa
}
}
class box extends rss{
// Aqui eu fiz uma nova classe extendendo o rss
// Essa classe exibe uma caixa formatada
// Poderia ter feito sem extensão, mas quis mostrar como estender o script.
var $color = "#000000";
var $link_color = "#0000EE";
var $background= "#FFFFFF";
var $padding= "4px";
var $width= "250px";
var $height= "auto";
var $border= "thin black solid" ;
var $h3_background= "#EFEFEF" ;
var $h3_color= "#000000";
function box($a) {
// Passa para o rss ;
$this->rss($a);
}
function show_box() {
// Funcao que gera uma caixa formatada
$itens = $this->itens ;
$output = "<div style=\"display: block; background-color: $this->background; padding: $this->padding; width: $this->width;height: $this->height; border: $this->border ; color: $this->color\" >";
$output .= "<h3 style=\"background-color: $this->h3_background ; padding: 0 0 0 0;margin: 0 0 0 0; \">" ;
$output .= "<a href='".$this->link."' style=\"color: $this->h3_color \"> ";
$output .= $this->title."</a></h3><div class='rss_inner'><dl>";
for($i = 0; $i < sizeof($itens); $i++) {
$link = $itens[$i]["#"]["link"][0]["#"] ;
$data = $itens[$i]["#"]["datePosted"][0]["#"] ;
$titulo = $itens[$i]["#"]["title"][0]["#"] ;
$titulo = $itens[$i]["#"]["title"][0]["#"] ;
$output .= "<dt><a href='$link' style=\"color: $this->link_color \">$titulo</a> :: ($data) </dt>";
}
$output .= "</dl></div></div>" ;
$this->output = $output ;
return $this->output ;
}
}
$rss = new rss("http://www.manifesto.blog.br/rss.xml"); // Assim chamamos o rss
echo $rss->leitor(); // Aqui sera exibida a caixa sem formatação
unset($rss) ;
$rss = new box("http://www.manifesto.blog.br/rss.xml") ; // Agora vamos usar a extensão da classe rss, o box .
$rss->color = "red" ;
$rss->link_color = "green" ;
$rss->h3_color = "purple" ;
echo $rss->show_box(); // Aqui sera exibida a caixa formatada
/*
Pode se alterar os valors da caixa pelas seguintes variaveis:
$rss->background
$rss->padding
$rss->width
$rss->height
$rss->border
$rss->color
$rss->h3_background
$rss->h3_color
Ou criando um estilo próprio.
*/
?>
Contador de acessos com Oracle
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (1)
Alguém executou um rm e quase mata a Pixar! (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (5)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









