Cómo Mostrar El Número de Suscritos a Feedburner En Texto Plano con PHP

by manelgarcia on May 12, 2010

in PHP

Cómo todos me imagino ya sabréis Feedburner es el gestor de feeds RSS más popular, comprado hace tiempo ya por Google se dedican a gestionar los feeds de tus blogs enlazandolos con tu cuenta de Google para poder acceder cómodamente.

En muchos blogs, este mismo por ejemplo, hago uso de la herramienta FeedCount, o lo que ellos llaman el chicklet, dónde tal y cómo podemos ver en la foto, te permite crear una especia de badge donde mostrar el número de suscritos en tu blog.

Hasta aquí todo bien, pero que hacemos si queremos mostrar el número de suscritos en formato texto para poder darle estilos con CSS? Seguro que también lo habéis visto en muchos sitios por ejemplo: smashingmagazine o nettuts.

Podemos hacer esto con PHP usando la función cURL y la API awareness que nos pone a disposición Feedburner, con el siguiente código que podemos guardar en un archivo externo, por ejemplo, feedburner.php:

<?php
// lugar donde guardaremos el archivo txt con el numero de suscritos
$feed_file = '/home/termina/tu/ruta';

 // cada cuanto tiempo queremos actualizar el archivo txt? en minutos
$feed_timer = '240';

if (!file_exists($feed_file)) {
    $time = time() - ($feed_timer * 60) - 60;
    touch($feed_file, $time); // creamos el archivo y le ponemos en tiempo pasado para que se actualize
}

if (filemtime($feed_file) + ($feed_timer * 60) > time()) {  //miramos si es antiguo
    $feedcount = file_get_contents($feed_file);
    echo $feedcount;
} else {
    // plantamos la url a explorar
    $whaturl="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=AQUI_TU_ID";

    // iniciamos la sesion curl
    $ch = curl_init();

    // le decimos a curl, que nada de mostrarlo en el navegador, mejor nos lo devuelves.
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // le decimos que url es
    curl_setopt($ch, CURLOPT_URL, $whaturl);

    // cazando contenido
    $data = curl_exec($ch);

    // gracias por todo, cierro conexion
    curl_close($ch);
    $xml = new SimpleXMLElement($data);
    $fb = $xml->feed->entry['circulation'];

    // muestro los suscritos
    echo $fb;
    // guardo el archivo en la cache
    fwrite(fopen($feed_file, "w"), $fb);
}
?>

Y para mostrar el numerito en sí tan fácil cómo algo cómo eso:

<span style="font-size:14px; color:red;"><? include 'feedburner.php'; ?></span>

Previous post:

Next post: