Leer feed del Blog desde PHP

No hace mucho ya comenté que había decidido tener un blogroll más dinámico accediendo a los feeds de los blogs enlazados e incluyendo sus últimas entradas, como resultado obtuve el módulo del panel lateral titulado “Cosas que leo“.

Pero ayer necesitaba de nuevo acceder al feed, en este caso, de mi propio blog, y en vez de utilizar un plugin de wordpress y editarlo, decidí que lo mejor era acceder directamente al xml y leerlo, supuse que tendría que crear una especie de librería ya que hay distintos formatos de feed (Atom 0.3, Atom 1.0, RSS 1.0, RSS 2.0, …) pero por suerte, encontré en un Foro un chico que deseaba hacer lo mismo y tras conseguirlo mostró el código.

Tras fijarme un poco en su código fuente, me di cuenta de que utilizaba unas funciones que no pertenecen a php y llamaba a una librería con un nombre curioso, “SimplePie“, buscamos en Google y resulta ser una librería que me quita todo el trabajo que yo creía iba a tener que hacer (esto del php… es la caña).

Y voilá, con esa librería así de sencillo resulta acceder a un feed y leer sus entradas:

function pintarFeedBlog($urlRSS){
include_once('./simplepie.inc');
$feed = new SimplePie();
	 
if ($urlRSS !== ''):
	$feed->set_feed_url($urlRSS);
	$success = $feed->init();
	$feed->handle_content_type();
	if ($success):
		foreach($feed->get_items() as $item):
			echo '<a href="' . $item->get_permalink() . '">';
			echo $item->get_title() . '</a>&nbsp;';
			echo $item->get_date('j M Y, g:i a') . '<br />';
			echo $item->get_content();
		endforeach;
	endif;
endif;
}

Para quien le interese, os dejo un enlace a la página de descarga de SimplePie y a su documentación, con todas las funciones posibles.

6 thoughts on “Leer feed del Blog desde PHP”

  1. Gracias por el codigo.
    Lo intente funciona pero me arroja este error

    Warning: ./cache/586b7b2ef6a19be74b3a90eca9a499b8.spc is not writeable in C:\wamp\www\feed\simplepie.inc on line 1773

  2. Listo, solo deshabilite el cache.

    $feed->enable_cache(false);

    Ahora tendré que averiguar el cómo seleccionar solamente 150 caracteres y que sea solo texto.

  3. El error lo tenías de permisos en realidad, mira de darle permisos de escritura al PHP en esa carpeta.

    Lo otro creo que se podía hacer con las mismas funciones, sino, usa el mismo PHP con funciones de cadenas y ya está.

Comments are closed.