Sep 132015
 

A diferencia de otros lenguajes de programación, como C++ o Java, PHP es un lenguaje interpretado. Esto significa que cada vez que se ejecuta un script escrito en PHP, el intérprete debe convertir las sentencias contenidas en el código fuente del script en sentencias de bajo nivel directamente ejecutables por la máquina.

En el caso de un servidor web, los scripts que generan el código HTML de las páginas que son entregadas a los clientes pueden ser ejecutados cientos o miles de veces cada día. Para evitar que el intérprete tenga que ejecutarse cada vez, es habitual implementar un mecanismo por el cual el opcode generado la primera vez que se invoca al script se guarda, y es reutilizado en sucesivas ejecuciones del mismo script.

Hasta la versión 5.4 de PHP, este mecanismo de cache estaba implementado por distintas extensiones, de entre las cuales la más popular es probablemente APC (Alternate oPcode Cache). La versión 5.5 de PHP incluye en la distribución base el “Zen opcode cache”, que sustituye a la extensión APC.

En este artículo se exponen las características de esta nueva implementación, y la manera de configurarla.

Seguir leyendo »

 Publicado por en 3:33 pm
Jul 112015
 

La distribución base del intérprete PHP incluye un función json_decode que hace muy sencillo el proceso de ficheros en formato JSON. Pero esta función trabaja sobre un string que debe haber sido completamente en memoria. Esto puede ser un problema si se trabaja con ficheros de varios cientos de megabytes, o incluso de más de un gigabyte, como es el caso en determinados escenarios (por ejemplo, cuando se procesan datos geográficos en formato GeoJSON). En este artículo se explica el uso de una librería “jsonstreamingparser” para PHP, que permite procesar los objetos contenidos en el fichero conforme se van leyendo, evitando un consumo excesivo de los recursos de memoria disponibles. Seguir leyendo »

 Publicado por en 7:04 pm
Mar 052015
 

Un sitio web que contiene información relativa a una determinada área geográfica puede encontrar interesante complementar su contenido con una relación de lugares, puntos de interés, negocios y servicios cercanos al área sobre la que trata.

Yelp es uno de los APIs existentes, junto con Google Places, Facebook, etc. que permite obtener este tipo de información. En este artículo se explica cómo implementar un listado de lugares en una página web utilizando la librería PHP del API de Yelp.

Seguir leyendo »

 Publicado por en 11:30 am
Mar 012015
 

Factual es una base de datos georeferenciada de lugares, servicios y puntos de interés accesible gratuitamente a través de un interfaz de programación de aplicaciones (API).

En este artículo se explica cómo utilizar una librería PHP para acceder a esta base de datos, y las características del contenido que se puede obtener de la misma.

Seguir leyendo »

 Publicado por en 4:38 pm
Feb 122015
 

Google Webmaster Tools ofrece una abundante información sobre el estado de un sitio web. Pero para integrar esta información en un sistema que permita, por ejemplo, generar alertas cuando se cumplan determinadas condiciones, es necesario disponer de un procedimiento que permita descargar esta información de manera automatizada.

En este artículo se presenta una utilidad escrita en PHP que implementa esta funcionalidad.

Seguir leyendo »

 Publicado por en 6:58 pm
Nov 222014
 

Un sitio web que ofrece un servicio, puede necesitar implementar algún tipo de procedimiento de registro y validación de usuarios. De este modo, a los usuarios que se dan han dado de alta en el servicio, al validarse con su identificador de usuario y contraseña, se les da acceso a funcionalidades no disponibles para los usuarios anónimos.

En otro artículo de esta serie hemos explicado una posible implementación de esta funcionalidad mediante una serie de scripts PHP. En este artículo consideraremos el caso particular de una instalación de WordPress.

Seguir leyendo »

 Publicado por en 5:28 pm
Nov 162014
 

Para ofrecer un servicio personalizado en un sitio web, es necesario implementar un mecanismo de registro de usuarios, y un procedimiento de login. Una vez que el usuario se ha validado, se puede dar acceso a funcionalidad específica del sitio que requiere el uso de la información asociada al usuario.

En este artículo se presenta una posible implementación de la funcionalidad de registro y validación de usuarios en lenguaje PHP.

Seguir leyendo »

 Publicado por en 2:12 pm
Nov 032014
 

La distribución base del intérprete PHP incluye la extensión DBA (Database Abstraction Layer) para trabajar con bases de datos del tipo dbm, como es BerkeleyDB. La funcionalidad disponible en esta extensión no es tan completa como la que ofrecen las librerías específicas para cada tipo de base de datos, pero puede ser suficiente en un buen número de aplicaciones.

En este artículo se expone la manera de utilizar DBA en un script PHP, y las posibilidades que ofrece.

Seguir leyendo »

 Publicado por en 3:40 pm
Oct 312014
 

El formato XML es utilizado frecuentemente para intercambiar datos entre distintas aplicaciones.

La manera más sencilla de procesar estos datos es utilizar algún procedimiento que lee el documento entero y convierte los elementos que contiene a una estructura de datos nativa del lenguaje de programación utilizado. En el caso de PHP, el resultado sería un array asociativo de valores, cada uno de los cuales sería a su vez una array asociativo o bien un valor primitivo, de tipo numérico o de tipo texto.

Pero en ocasiones el volumen de datos a procesar es muy elevado, y puede ser necesario trabajar con documentos XML contenidos en ficheros de varios Gigabytes. En estos casos, los recursos de memoria disponibles pueden no ser suficientes para contener el documento entero en memoria, y es necesario leer el fichero elemento a elemento, y procesar cada uno de los elementos conforme se van leyendo. En este artículo se presenta la forma de realizar este tipo de proceso en lenguaje PHP.

Seguir leyendo »

 Publicado por en 5:41 pm