Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

schumacker

Para capturar noticias do UOL

Recommended Posts

Pessoal,

 

Achei o script abaixo que captura um arquivo XML de RSS dos sites e com isso eu posso colocar essas noticias no meu site.

 

Coloquei o link do RSS do Estadão (http://www.estadao.com.br/rss/economia.xml) e funciona corretamente.

 

Quando coloco o link RSS do UOL (http://rss.noticias.uol.com.br/ultnot/economia/index.xml), também funciona, porem a linkagem da noticia fica com uma droga de código <![CDATA que faz com que minhas noticias nao abram.

 

Abaixo segue o codigo... me ajudem a mexer nele de tal forma que eu consiga exibir corretamente as noticias do UOL e a linkagem funcionar corretamente....

 

PHP [/tr][tr]

<?

/*

Script para mostrar notícias no RSS

Modificado: 2004-05-15

Agora o script só lê o RSS em um determinado período de tempo de acordo com a variavel $time que é setada em segundos.

Isso evita sobrecarregar o servidor que roda o script e o servidor do site Notícias Linux com muitas conexões.

Crie um arquivo em branco no servidor chamado "noticias.xml" e depois dê permissão de leitura e gravação a ele:

chmod 666 noticias.xml

*/

 

$filename = "noticias.xml";

$time = 1800; // atualiza a cada meia hora (1800 segundos)

 

if (file_exists($filename)) {

$last_save = filemtime($filename); // retorna o unixtime da última vez que o arquivo foi alterado

} else {

$last_save = 0;

}

 

if (($last_save > time() - $time) and (filesize ($filename) > 5) ){ // verifica a ultima alteração e se o arquivo está em branco

$fd = fopen ($filename, "r");

$rss= fread ($fd, filesize ($filename));

fclose($fd);

} else {

$matches = array();

$rss = join("",file("http://rss.noticias.uol.com.br/ultnot/economia/index.xml")); // Faz download do arquivo RSS

$fp = fopen($filename,"w"); // grava o conteudo no arquivo

fwrite($fp,$rss);

fclose($fp);

}

 

$eng ="/<title>(.*?)<\/title>\n(.*?)<link>(.*?)<\/link>/"; // Expressão regular que buscas as informações no arquivo RSS

preg_match_all($eng,$rss,$matches);

 

echo "<html>

<h1>Notícias</h1>";

 

for($i = 1; $i < sizeof($matches[0]); $i++ ) {

// Imprime o título da notícia com link para a notícia

echo "<a href=\"".$matches[3][$i]."\">".$matches[1][$i]."</a><br />";

}

?>

[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.