Bom estou fazendo uma nova versão da minha página pessoal e pensei em listar os últimos tópicos criados aqui no blog, mas queria algo simples, sem precisar criar uma conexão para acessar minha base de dados, decidi por um leitor de feeds RSS, para pegar os últimos tópicos através do feed do blog, vou utilizar a função simplexml_load_file para fazer um leitor simples
O que são feeds?
Feed (vindo do verbo em inglês “alimentar”) é um formato de dados usado em formas de comunicação com conteúdo atualizado frequentemente, como sites (sítios) de notícias ou blogs. Distribuidores de informação, blogueiros ou canais de notícias disponibilizam um feed ao qual usuários podem se inscrever, no formato de um link. [Wikipédia]
O que é RSS?
RSS é um subconjunto de “dialetos” XML que servem para agregar conteúdo ou “Web syndication”, podendo ser acessado mediante programas ou sites agregadores. [Wikipédia]
Para que são utilizados?
Como vimos na descrição os feeds permitem que os usuários acompanhem as últimas notícias de um site ou posts de um blog, sendo bastante útil ao usuário, de maneira que o mesmo não precisa acessar os sites ou blogs procurando novas notícias, ao utilizar feeds são as notícias que vão até os usuários inscritos.
Criando seu leitor de feeds simples
Nesse script foi utilizado a função simplexml_load_file(), que carrega um arquivo xml e o transforma em objeto, mas aqui utilizamos um link de feed rss, que ao ser solicitado retorna um arquivo xml, como foi dito na descrição, os rss são dialetos xml.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| <?php // permite requisições a urls externas ini_set ( 'allow_url_fopen' , 1); ini_set ( 'allow_url_include' , 1); // caminho do feed do meu blog // leitura do feed $rss = simplexml_load_file( $feed ); // limite de itens $limit = 5; // contador $count = 0; // imprime os itens do feed if ( $rss ) { foreach ( $rss ->channel->item as $item ) { // formata e imprime uma string printf( '<a href="%s" title="%s" >%s</a><br />' , $item ->link, $item ->title, utf8_decode($item->title) ); echo(utf8_decode($item->description)); // incrementamos a variável $count $count ++; // caso nosso contador seja igual ao limite paramos a iteração if ( $count == $limit ) break ; } } else { echo 'Não foi possível acessar o blog.' ; } ?> |
Como nem todos os serviços de hospedagem estão configurados para solicitar conteúdos através de uma url, como é nosso caso aqui, foram adicionadas duas linhas no início do script com a finalidade de configurar e permitir essa solicitação.
Creio que o script está bastante comentado, mas o que fizemos aqui foi:
- Definimos a url do feed na variável $feed;
- Solicitamos e convertemos o feed através da função simplexml_load_file();
- Definimos o número máximo de resultados que desejamos na variável $limit;
- Efetuamos um loop para imprimir os resultados;
A função sprintf() é utilizada para impressão de strings(textos) com grande número de variáveis, essa função é mais rápida do que concatenar textos e variáveis.
Comentários
Postar um comentário