27/5/12

Reduce la carga de tu feed RSS con XML y PHP


Quizás de primeras no seamos conscientes del potencial de estas dos tecnologías juntas, pero si nos fijamos bien, podemos darnos cuenta de que XML y PHP pueden funcionar de una forma muy similar a como puede trabajar PHP con una base de datos.
Aunque utilizar estas dos tecnologías juntas no excluye usar bases de datos.
Veremos como juntar estas dos tecnologías para darle rienda suelta a nuestra imaginación.


Sinceramente sabía que PHP manejaba datos XML pero no sabía cómo lo hacía así que luego de buscar en Internet encontré varias alternativas que quiero compartir aquí:
  1. SimplePie: Permite trabajar con datos XML, en específico RSS.
  2. SimpleXML: El propio PHP cuenta con una clase que trabaja de manera bastante sencilla los datos XML.
Ahora está claro que si sólo deseas trabajar con RSS de blogs, o algo por el estilo SimplePie es la mejor alternativa, de hecho es la utilizada por Worpress en su sistema. Ahora bien, en cuanto al uso de SimpleXML la propia documentación es buena. Pero, claro, yo buscaba algunos detalles como usar una cache para que los datos no se solicitaran cada vez al servidor remoto y encontré un código muy interesante en FinalWebsites.com:
<?php
$cache_time = 3600*24; // 24 hours
$cache_file = $_SERVER['DOCUMENT_ROOT'].‘/cache/test.rss’;
$timedif = @(time()filemtime($cache_file));
if (file_exists($cache_file) && $timedif < $cache_time) {
$string = file_get_contents($cache_file);
} else {
$string = file_get_contents(‘http://www.bloggayuda.blogspot.mx/feed/’);
if ($f = @fopen($cache_file, ‘w’)) {
fwrite ($f, $string, strlen($string));
fclose($f);
}
}
$xml = simplexml_load_string($string);
// colocar el código de abajo en algún lugar de su html
echo
<div id=”rssbox”>
<ul>’;
$count = 0;
$max = 3;
// el objeto siguiente es un ejemplo para una alimentación de feed del blog
foreach ($xml->channel->item as $val) {
if ($count < $max) {
echo
<li>
<strong>’.$val->title.‘</strong><br />
‘.$val->description.‘ | <a href=”‘.$val->link.‘”>More &gt;</a>
</li>’;
}
$count++;
}
echo
</ul>
</div>’;
?>

Es un simple código para manejar o mas que nada para reducir la carga del servidor host donde tenemos alojado el feed rss de nuestra pagina, muy bueno verdad!!.


0 comentarios:

¡Gracias por dejar tu opinión! Por favor procura que tus comentarios estén dentro de tema, que no sean promocionales (spam), ilegales u ofensivos, de otro modo, serán borrados.

 
¡Te gusta Blogg Ayuda!