Estos días estuve trabajando con un proyecto en el que requería intercambio de datos entre varios servidores mediante XML. 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í:
- SimplePie: Permite trabajar con datos XML, en específico RSS.
- SimpleXML: El propio PHP cuenta con una clase que trabaja de manera bastante sencilla los datos XML.
Ahora a la hora de implementar estas librerías encontré ejemplos muy interesantes. 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.web-development-blog.com/feed/’);
if ($f = @fopen($cache_file, ‘w’)) {
fwrite ($f, $string, strlen($string));
fclose($f);
}
}
$xml = simplexml_load_string($string);
// place the code below somewhere in your html
echo ‘
<div id=”rssbox”>
<ul>’;
$count = 0;
$max = 3;
// the next object is an example for a feed from wordpress
foreach ($xml->channel->item as $val) {
if ($count < $max) {
echo ‘
<li>
<strong>’.$val->title.‘</strong><br />
‘.$val->description.‘ | <a href=”‘.$val->link.‘”>More ></a>
</li>’;
}
$count++;
}
echo ‘
</ul>
</div>’;
?>
Espero que te sea de utilidad.
¡Hasta la próxima!

