Tutorial: Como fazer feeds RSS de outros sites/Usando PHP/Código fonte final

De Projeto RSSficado 2

Voltar para o artigo principal: Como fazer feeds RSS de outros sites/Usando PHP

<?php
$url = "http://z001.ig.com.br/ig/16/28/1025052/blig/rssficar/"; // Aqui vai a URL de onde será feita a extração.
$content = file_get_contents($url);//Vamos extrair o conteúdo do site e colocar na string $content. Você pode também usar o cURL se isso não funcionar.
$content = utf8_encode($content);
$linebreaks = array("\r", "\n");
$content = str_replace($linebreaks, "", $content);
//Pega a data, título e sumário
preg_match_all("/<span class=\'data_hora\'>(.+?)<\/span><\/a><br><br><b>(.*?)<\/b><br><br>(.*?)<br>/", $content, $dates_titles_summaries);
preg_match_all("/exibeComentario\\([0-9]+, \'.*?\',\'(.+?)\'\\);/", $content, $links);
// Convertendo as datas para o formato GNU (AAAA-MM-DD HH:MM)
$dates_titles_summaries[1] = preg_replace('/([0-9]+)\/([0-9]+)\/([0-9]+) ([0-9:]+)/', '$3-$2-$1 $4', $dates_titles_summaries[1]);
header("Content-type: application/rss+xml; charset=utf-8");//Envie um header ao navegador avisando que se trata de um feed RSS
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";// Prólogo XML
?>
<rss version="2.0">
<channel>
<title>Teste RSSFicar</title>
<description>Blog de exemplo para o Projeto RSSficado 2</description>
<link>http://rssficar.blig.ig.com.br/</link>
<language>pt-br</language>
<?php
	// Aqui começa o loop para a exibição de cada um dos itents do feed.
	for ($i=0; $i<sizeof($dates_titles_summaries[1]); $i++): // Todos os arrays tem (Normalmente) o mesmo tamanho...
		$title = $dates_titles_summaries[2][$i];
		$link = $links[1][$i];
		$summary = $dates_titles_summaries[3][$i];
		$date = date("D, d M Y H:i:s \G\M\T", strtotime($dates_titles_summaries[1][$i]));
?>	
	<item>
		<title><![CDATA[<?php echo $title ?>]]></title>
		<link><![CDATA[<?php echo $url . $link; ?>]]></link>
		<description><![CDATA[<?php echo $summary ?>]]></description>
		<pubDate><?php echo $date ?></pubDate>
		<guid><?php echo $url . $link; ?></guid>
	</item>
<?php endfor; ?>
</channel>
</rss>
Ferramentas pessoais