Bom pessoal, para recomeçar a postar artigos, escolhi um tutorial bem simples. Colocar uma àrea de clipping no site é uma maneira de manter seu site sempre atualizado com notícias de um um mais sites.
O clipping é muito tranquilo de ser implementado. Aqui mostraremos como implementar essa feature com PHP.
Primeiro criamos a função xml_simple_clipping
<?
function xml_simple_clipping($urlrss,$tamanho, $urlhost){
/** Primeiro devemos abrir o site que contm o XML com as notícias para depois fazermos o
* PARSE das notícias.
*/
/* caso o site não exista ou não seja possível ler o arquivo XML a função
* fopen irá retornar FALSE e interrompemos a função
*/
if (!($fp = fopen($urlrss, "r"))) {
echo "<div>Erro ao tentar ler o RSS do site $urlhost</div>\r\n";
echo "<h5>Fonte: <a href='http://$urlhost' target='_blank'>$urlhost</a></h5>\r\n";
return;
}
/** Após abrir o aquivo vamos ler e jogar as suas informações no arquivo $xml_parse.
*/
while ($data = fread($fp, 4096)){
$xml_parse.=$data;
}
/** Agora utilizamos a função simplexml_load_string() para fazer o parse do aquivo
* XML para um objeto
*/
$oXML = simplexml_load_string($xml_parse);
/** Com o objeto formado, podemos agora acessar todas as informações disponíveis
* no RSS que você deseja adicionar ao seu site.
* Toda a informação estar no objeto $oXML->channel[0].
* Vamos ver agora algumas informaçães que poderemos obter.
*/
$br = "<br />"; // quebra de linha no HMTL
echo "<b> Informações do site de RSS</b>". $br;
// Informações sobre o Site de RSS
echo $oXML->channel[0]->title . $br; // Ttulo do site
echo $oXML->channel[0]->description . $br; // Descrio do site
echo $oXML->channel[0]->link . $br; //Link para o site
echo $oXML->channel[0]->lastBuildDate . $br; // Data da última publicação no site
/* As notícias econtram-se no objeto $oXML->channel[0]->item[]
* Fazemos então um loop para leitura das notícias.
* Lembrando que o parâmetro $i é a quantidade de notícias que
* desejo exibir na minha seção de clipping
*/
echo $br.$br."<b><u>Notícias do RSS</b></u>". $br.$br;
for($i=0;$i<$tamanho;$i++){
$oNews = $oXML->channel[0]->item[$i]; // apenas para encurtar no nome da variável
if($oNews->title[0] != '') { // testamos se existe a notícia
$nTitulo = $oNews->title[0]; // título do RSS
$nDescription = $oNews->description[0]; // descrição do RSS
$nLink = $oNews->link[0]; // Link para o RSS
$nPubDate = $oNews->pubDate[0]; // Data de publicação do RSS
$nAutor = $oNews->author[0]; // Autor do RSS
echo "<div>» ".$nPubDate." — <a href='$nLink' target='_blank'>".htmlspecialchars($nTitulo)."</a></div>\r\n";
} else { break; } // caso tenha menos notícias no site do que eu desejo exibir.
}
echo "<h5>Fonte: <a href='http://$urlhost' target='_blank'>$urlhost</a></h5>\r\n";
}//fecha function
?>
Após criada a função, inserimos no html a chamada para a função. Desta maneira podemos criar um RSS com múltiplas fontes. Como podemos confirir no código a seguir:
<?
// Primeira fonte de RSS
$urlRSS="http://www.gouveia.eng.br/feed.php";
$urlHost = "www.gouveia.eng.br";
xml_simple_clipping($urlRSS, 4, $urlHost);
/*
// Segunda fonte de RSS
$urlrss="http://ext02.tst.jus.br/pls/no01/NO_NOTICIASNOVO.rss?p_cod_area_noticia=ASCS";
$urlhost = "www.tst.gov.br";
xml_simple_clipping($urlrss,4,$urlhost);
*/
?>
Como podem notar, a segunda fonte está comentada, mas é apenas para mostrar que é possível com este script ter mais de uma fonte para o clipping de seu site.
Bom, é isso pessoal, espero que aproveitem para deixar seus sites com mais conteúdo.