Defcrypt

Programación

Documentación PHP en tu Mac

by dGil on Feb.07, 2009, under MacOS X, PHP, Programación

Si eres programador de PHP, PHP.net seguramente será una de tus webs preferidas. Estaba esta tarde navegando buscando algún widget para el dashboard cuando por casualidad he encontrado PHP Function Index. Este programa para Mac OS X (10.4+) permite buscar en toda la documentación de PHP utilizando la documentación online.

Una vez descargado el programa, tendremos que descargar la documentación de PHP.net. Luego en las preferencias del programa seleccionamos el directorio dónde hemos guardado la documentación y le indicamos al programa que cree el índice.

Este programa permite además, consultar los comentarios. El programa también utiliza la documentación online para estar al día, pero también permite buscar sin conexión utilizando los archivos descargados. Os dejo un par de capturas:

PHPfi

PHPfi

PHPfi

PHPfi

Por cierto, si usáis Textmate, el programa lleva un addon para éste que permite mientras programamos consultar funciones en PHPfi. Para ejecutar dicho addon utiliza el siguiente atajo: ctrl + alt + H.

Leave a Comment :, , , more...

Obtener el tiempo a partir de un string en PHP

by dGil on Ene.17, 2009, under PHP, Programación

Para mi PFC he tenido que comparar entre dos fechas, cual era menor que la otra. Estas fechas se leían de un RSS (osea, un XML). El campo era “lastBuildDate”, que es un string con un formato como el siguiente: “Tue, 13 Jan 2009 18:16:06 +0100″.

Para poder comparar utilizando fechas se necesita trabajar con la marca de tiempo de Unix. Esta marca de tiempo es un entero que contiene el número de segundos entre el Epoch Unix (1 de Enero de 1970 00:00:00 GMT) y la hora especificada.

Para poder convertir una fecha en la marca de Unix tendremos que utilizar la función mktime de PHP. El problema es que solo acepta enteros como entrada y en el siguiente orden:

int mktime  ([ int $hora  [, int $minuto  [, int $segundo  [, int $mes  [, int $dia  [, int $anyo  [, int $es_dst  ]]]]]]] )

Por lo tanto, como tenía un string, para poder utilizar la función mktime debía parsear el texto. Hice una pequeña función utilizando expresiones regulares que retorna la marca de Unix:

function getTime($time="")
{
	if (!empty($time)) {
		//separamos $time por los espacios en blanco, comas y doble punto
		$car = preg_split("/[\s,:]+/", $time);
 
		//mktime(hora, min, seg, mes, dia, año)
		return mktime($car[4],$car[5],$car[6],getMonth($car[2]),$car[1],$car[3]);	
	}
	else {
		return false;
	}
}

La función getMonth es un pequeño diccionario que convierte el mes -nombre- en un entero. Por ejemplo Nov devuelve 11.

Para que se entienda un poco mejor que retorna la función, utilizando como entrada “Tue, 13 Jan 2009 18:16:06 +0100″ $car contendría:

$car[0] = "Tue";
$car[1] = 13;
$car[2] = "Jan";
$car[3] = 2009;
$car[4] = 18
$car[5] = 16
$car[6] = 06
$car[7] = +0100

¡Y eso es todo amigos!

Actualización: ya hay una función implementada en PHP que hace esto y un poco más: strtotime.

Leave a Comment :, , more...

Qt relicenciado bajo LGPL

by dGil on Ene.15, 2009, under Qt

Vía Méneame me entero que Qt añadirá a partir de la versión 4.5 (prevista para marzo de 2009) la licencia LGPL. ¿Que implica esto?

The move to LGPL licensing will provide open source and commercial developers with more permissive licensing than GPL and so increase flexibility for developers. In addition, Qt source code repositories will be made publicly available and will encourage contributions from desktop and embedded developer communities. With these changes, developers will be able to actively drive the evolution of the Qt framework.

Qt seguirá teniendo la licencia GPL y también una licencia comercial. De todas formas, para la gente que desarrollamos software sobre Qt es una noticia estupenda, ya que podremos programar usando su framework de forma gratuita y podremos liberar de forma gratuita o comercial (sin tener que pagar por ello).

Más información en la página de Qt.

1 Comment :, , more...

Buscar y reemplazar en archivos grandes con Python y expresiones regulares (parte II)

by dGil on Ene.07, 2009, under Programación, Python

Éste post es la continuación de Buscar y reemplazar en archivos grandes con Python y expresiones regulares (parte I) dónde explicaba un poco las expresiones regulares.

En este segundo post, como ya indiqué, hablaré sobre el programa que utiliza esos conocimientos. (continue reading…)

2 Comments :, , , more...

Buscar y reemplazar en archivos grandes con Python y expresiones regulares (parte I)

by dGil on Ene.05, 2009, under Programación, Python

Para mi PFC (proyecto de final de carrera) he tenido que hacer el típico buscar y reemplazar en varios archivos. El problema consistía en que esos ficheros eran una base de datos volcada en archivos txt. Para más inri, no la volcaron en formato SQL (¡ojalá!) sino que utilizaron el delimitador ‘ | ‘ para indicar dónde acababan las tuplas. Si hubiera sido un archivo pequeño, con cualquier editor hubiera sido suficiente, pero no era el caso. En total sumaban 203.000 líneas aproximadamente, repartidas en 6 ficheros, 2 de ellos de 90.000 líneas.

Como había un par de ficheros de gran tamaño, decidí hacer un pequeño programa en python para buscar y reemplazar. Para ello decidí usar junto con Python expresiones regulares. (continue reading…)

Leave a Comment :, more...

¿Buscando algo?

Utiliza este formulario para buscar: