Tratar datos binarios en PHP
Método sencillo para leer cabeceras binarias de imágenes GIF o JPEG u otros ficheros guardados en binario…
Método sencillo para leer cabeceras binarias de imágenes GIF o JPEG u otros ficheros guardados en binario…
Cuando tienes una aplicación web, los procesos cron son muy útiles para automatizar tareas de todo tipo: mantenimiento, background, … El problema que nos podemos encontrar es cuando el tiempo que tarda en ejecutarse un cron supera el tiempo de espera entre ejecuciones, con lo que nos encontramos con dos cron ejecutándose en el mismo momento, pudiendo repercutir negativamente en la propia tarea del cron.
Para evitar esta situación, el script al que hago referencia nos va a venir muy bien, porque añade bloqueos al cron para evitar que dos procesos se ejecuten. Una solución sencilla es crear un fichero, y si el fichero existe, pues no ejecutar el cron. El problema que tiene esto es que si el cron termina abruptamente, el fichero seguirá existiendo por no haberse borrado y el resto de procesos cron no se ejecutarán.
El autor en este script añade la posibilidad de saber si el cron sigue ejecutándose o se terminó incorrectamente, para lo cual en el fichero de bloqueo guarda el PID del proceso cron que lo crea y comprueba si el PID sigue existiendo. Este script sólo es útil en entornos linux.
How to use locks in PHP cron jobs to avoid cron overlaps
Vía / PHPDeveloper.org
El otro día me preguntaba un amigo cómo quitar los parámetros que mete Google Reader en las URLs, ya que debido a ello algunos servicios que monitorizan referencias, consideraba las urls diferentes.
El truco es fácil, sólo hay que meter en el .htaccess lo siguiente:
RewriteCond %{QUERY_STRING} utm_source.*
RewriteRule (.*) $1? [R=301,L]
Seguimos con el error 404. Si días atrás hablábamos de cómo personalizarlo desde WordPress, hoy hablaremos de cómo configurarlo de manera general desde el servidor.
Recordemos el 404. Cuando se intenta acceder a una página que no existe, el servidor devuelve un mensaje de error 404. Normalmente los navegadores tienen su propia página que muestra ese error (Firefox incluyó la suya a partir de la version 1.5). Personalizar nuestra propia página de error nos puede dar una mayor funcionalidad y no perder la estética de nuestro sitio.