Desenvolvi este script para o site www.adcw.com.br, ele busca os posts na fan-page da agência no facebook e retorna em um ajax, aqui simplifiquei um pouco, utilizando “echo” mesmo…
<? //@include("config.php"); define("CFG_FACEBOOK_FPID", "157126511023182"); //verifica o arquivo de cache $CACHEFILE = "fbcache.tmp"; if ((!file_exists($CACHEFILE)) || ((time() - filemtime($CACHEFILE)) > 1800)) { $targetdomain = 'www.facebook.com'; $hostIP = gethostbyname($targetdomain); $fp = fsockopen($hostIP, 80, $errno, $errstr, 10); $getString = "GET /feeds/page.php?id=".CFG_FACEBOOK_FPID."&amp;amp;amp; format=rss20 HTTP/1.1\r\nHost: $targetdomain\r\nConnection: close\r\n"; $getString .= "User-agent: Mozilla\r\nAccept: text/plain,text/html\r\n"; $getString .= "\r\n"; $feed_contents = ""; fputs($fp,$getString); while ( (!feof($fp)) && ($line = fread( $fp, 8192 )) ) { $feed_contents.=$line; } $fp = @fopen($CACHEFILE, 'w+'); fwrite($fp, $feed_contents); fclose($fp); $xml = $feed_contents; } else { //se não puxou um novo arquivo do facebook faz a leitura da cache $fp = fopen($CACHEFILE, 'r'); $xml = fread($fp, filesize($CACHEFILE)); fclose($fp); } //interpreta o XML $i=0; $items=array(); $xml = explode("\n",$xml); for ($x=0; $x <= count($xml); $x++) { $line = trim($xml[$x]); if ($line == "<item>") { $i++; } if ($i > 0) { if (substr($line,0,7) == "<title>") { $items[$i]["title"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); } if (substr($line,0,6) == "<link>") { $items[$i]["link"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); } if (substr($line,0,8) == "<author>") { $items[$i]["author"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); } //------------------------------- // pubDate //------------------------------- if (substr($line,0,9) == "<pubDate>") { //formata a data para o formato da ADCW (Original: Wed, 06 Jul 2011 17:14:41) //Thu, 14 Jul 2011 20:45:19 +0100 $data = htmlentities(strip_tags($line), ENT_QUOTES|ENT_IGNORE,"UTF-8"); $data = explode(" ",$data); $items[$i]["pubDate"] = $data[1]." ".strtoupper($data[2])."<br>".$data[3]; } //------------------------------- // Links //------------------------------- $items[$i]["link"] = str_replace("&amp;amp;amp;amp;","&amp;amp;amp;",$items[$i]["link"]); //------------------------------- // description //------------------------------- if (substr($line,0,13) == "<description>") { $data = htmlentities(trim(strip_tags(html_entity_decode($line),"<br>")),ENT_QUOTES|ENT_IGNORE,"UTF-8"); //titulo if (substr($data,0,strlen($items[$i]["title"])) == $items[$i]["title"]) { $data = trim(substr($data,strlen($items[$i]["title"]))); } //autor if (trim(substr($data,0,strlen($items[$i]["author"]))) == $items[$i]["author"]) { $data = trim(substr($data,strlen($items[$i]["author"]))); } //vimeo (retira url do inicio) if (trim(substr($data,0,18)) == "vimeo.comvimeo.com") { $data = trim(substr($data,18,(strlen($data)-18))); } //youtube (retira url do inicio) if (trim(substr($data,0,30)) == "www.youtube.comwww.youtube.com") { $data = trim(substr($data,30,(strlen($data)-30))); } //tira as quebras de linha do inicio do texto if (substr($data,0,12) == "&amp;amp;amp;lt;br /&amp;amp;amp;gt;") { $data = trim(substr($data,12)); } if (substr($data,0,12) == "&amp;amp;amp;lt;br /&amp;amp;amp;gt;") { $data = trim(substr($data,12)); } //tira a mensagem FOTOS DO MURAL if (substr($data,-14) == "Fotos do mural") { $data = substr($data,0,(strlen($data)-14)); } //-- $items[$i]["description"] = $data; } //------------------------------- // image -> este campo ?xtraido do rss/description do fb //------------------------------- if (substr($line,0,13) == "<description>") { $data = trim(strip_tags(html_entity_decode($line),"<img>")); $data = explode(chr(34),$data); for ($y=0; $y <= count($data); $y++) { if ((substr($data[$y],0,7) == "http://") &amp;amp;amp;&amp;amp;amp; (substr($data[$y],-4) == ".jpg")) { $data[$y] = str_replace("_s.jpg","_n.jpg",$data[$y]); //troca imagem pequena do RSS pela imagem tamanho normal $items[$i]["image"] = $data[$y]; } } } //------------------------------- //------------------------------- // video(vimeo) -> este campo extraido do rss/description do fb //------------------------------- if (substr($line,0,13) == "<description>") { $data = trim(strip_tags(html_entity_decode($line),"<a>")); $data = explode(chr(34),$data); for ($y=0; $y <= count($data); $y++) { if (substr($data[$y],0,17) == "http://vimeo.com/") { $items[$i]["video"] = $data[$y]; } } } //------------------------------- //------------------------------- // video(youtube) -> este campo extraido do rss/description do fb //------------------------------- if (substr($line,0,13) == "<description>") { $data = trim(strip_tags(html_entity_decode($line),"<a>")); $data = explode(chr(34),$data); for ($y=0; $y <= count($data); $y++) { if (substr($data[$y],0,31) == "http://www.youtube.com/watch?v=") { $items[$i]["video"] = $data[$y]; } } } //------------------------------- } } //injeta o item mais recente no site usando jquery e eval if (count($items) > 0) { //echo $items[1]["description"]; echo "<h2>".$items[1]["pubDate"]."</h2>\n"; echo "<h1><a href=\"".$items[1]["link"]."\">".$items[1]["title"]."</a></h1>\n"; if ($items[1]["video"] != "") { if (substr($items[1]["video"],0,17) == "http://vimeo.com/") { echo "<iframe id=\"facebook_image\" src=\"http://player.vimeo.com/video/".substr($items[1]["video"],17,(strlen($items[1]["video"])-17))."\" width=\"530\" height=\"310\" frameborder=\"0\" allowfullscreen></iframe>"; } elseif (substr($items[1]["video"],0,31) == "http://www.youtube.com/watch?v=") { echo "<iframe id=\"facebook_image\" width=\"530\" height=\"310\" src=\"http://www.youtube.com/embed/".substr($items[1]["video"],31,(strlen($items[1]["video"])-31))."\" frameborder=\"0\" allowfullscreen></iframe>"; } else { echo "<img id=\"facebook_image\" src=\"".$items[1]["image"]."\" />\n"; } } else { echo "<img id=\"facebook_image\" src=\"".$items[1]["image"]."\" />\n"; } } else { echo "Não foi possível buscar os dados...\n"; } ?>