Mensaje de error

  • Notice: Trying to access array offset on value of type int en element_children() (línea 6594 de /home/retro_relax/www.relaxate.com/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6594 de /home/retro_relax/www.relaxate.com/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6594 de /home/retro_relax/www.relaxate.com/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6594 de /home/retro_relax/www.relaxate.com/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6594 de /home/retro_relax/www.relaxate.com/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6594 de /home/retro_relax/www.relaxate.com/includes/common.inc).
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters en drupal_get_feeds() (línea 394 de /home/retro_relax/www.relaxate.com/includes/common.inc).

Tutorial: Parsear datos de otra web, cachearlos y mostrarlos

tutorial php cachear

A veces necesitamos cargar un contenido público de una web (por ejemplo un json con datos) para mostrarlos en nuestra web. Esto nos plantea un problema, si por cada petición que recibimos realizamos una petición al otro servidor podems saturarle de forma innecesaria. Además puede que la carga de nuestra página tarde más de lo debido ya que hay que esperar a que el otro servidor nos responda con los datos. 

En estos casos lo normal es pensar cada cuanto tiempo es necesario hacer la llamada y cachear en nuestro disco los datos para cargarlos de ahí la mayoría de las veces y sólo llamar al servidor externo cuando la caché caduque.

Lo primero que necesitamos es una función que nos diga si la caché está expirada, sería algo así:

Ahora leemos el json de datos y si la cache esta expirada lo regeneramos

Una vez hecho esto tendremos siempre los datos json (o xml o lo que sean). He usado