Tutoriais

Atualizado em 17 ago 2010 13h05

RSS Import - Exibindo e/ou salvando no seu site

  • URL Curta:
RSS Import - Exibindo e/ou salvando no seu site
Estamos acostumados a exibir feeds do nosso site para os visitantes, mas porque não importar também de outros sites? Como assim importar? Simples, vamos ler todo o feed que um xml e exibir as informações diretamente pra o visitante ou salvar na base de dados. As opções são muitas, basta usar a criatividade. Você pode exemplo criar um concentrador de links. Você pode programar para importar em x hora do dias as noticias para o seu site. O contéudo, muda de acordo com as alterações do feed de origem.

Script:
<?php
//----------------------------------------------------------------------------
// FUNÇÃO CURL PARA URL FILE DISABLE - SIMPLE XML LOAD
//----------------------------------------------------------------------------

function curlXML($url) {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
$data = curl_exec($ch);
curl_close($ch);
$xml = new SimpleXMLElement($data);

return $xml;
}
// Verifico se existe no servidor a função curl.
function carrega_xml ($url) {
if (ini_get('allow_url_fopen') && extension_loaded('simplexml')){
$xml = simplexml_load_file($url);
} else {
$xml = $this->curlXML($url);
}
return $xml;
}
$i = 0; // Zera contador

$xml = carrega_xml("http://rss.terra.com.br/0,,EI4795,00.xml"); // url do feed

$n_news = '3'; // Número de nóticias a importa ou exibir
foreach ($xml->channel->item AS $item){
$i++;
$titulo = utf8_decode($item->title); // Titulo do feed
$link = utf8_decode($item->link); // url pra o feed
$descricao = utf8_decode($item->description); // descricao do feed
$data = strtotime($item->pubDate); // data convertida para timestamp

echo $titulo ."<br />";
echo $link ."<br />";
echo $descricao ."<br />";
echo $data ."<br />";

// para o feed
if($i == $n_news) {
break;
}
}
?>


Para usar basta colocar a url do feed e no foreach personalizar com css ou salvar na base de dados. Exemplo em Anexo.

© MNDTI - Tecnologia e Informação. Todos Direitos Reservados. Política de privacidade.