Archivo

Archivo para la categoría ‘Php’

Script para renombrar ficheros (PHP)

Martes, 11 de Noviembre de 2008

Pues bueno, yo bajo bastante anime, series, etc… y no me gusta tener nombres asquerosos en los ficheros. Debido a esto he tenido que idear un scriptillo para renombrar ficheros en PHP.

Se basa en una expresión regular para encontrar el número del capítulo en cuestión, y a partir de ahí generar un nombre nuevo, limpio y bonito :)

En este ejemplo, se han usado las dos temporadas de Code Geass, donde los ficheros se llamaban “Code_Geass_.1.by_anime_(x-264).mp4″ (vamos, feo de narices) xD

Leer más…

Sonycrow Código, Ejemplo, Php, Programación, Scripts

Cifrado con Rijndael (AES) simétrico en PHP

Lunes, 22 de Septiembre de 2008

A continuación, un ejemplo funcional de un cifrado de datos simétrico usando Rijndael en su modo de 256bits.

<?php
header(“Content-Type: text/plain; charset=utf-8″);

# Creamos una clave de 256bits o 32 caracteres
$key = md5(“Clave para el cifrado de datos `12345`!·$%&/()=”);

# Cadena a encriptar
$data = “Estamos aquí reunidos para ver el funcionamiento de un cifrado simétrico. ALE!”;

/**
* PROCESO DE CIFRADO
**/
# Inicializa el mudulo de cifrado
$td = mcrypt_module_open(‘rijndael-256′, ”, ‘ofb’, ”);

# Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);

# Inicializa el cifrado
mcrypt_generic_init($td, $key, $vi);

# Cifra los datos
$encryptedData = mcrypt_generic($td, $data);

# Termina el manejador de cifrado y cierra el modulo
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

# Muestra el cifrado
echo “Cifrado:\n{$encryptedData}\n\n”;

/**
* PROCESO DE DESCIFRADO
**/
# Inicializa el mudulo de cifrado
$td = mcrypt_module_open(‘rijndael-256′, ”, ‘ofb’, ”);

# Inicializa el cifrado
mcrypt_generic_init($td, $key, $vi);

# Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);

# Descifra los datos
$decryptedData = mdecrypt_generic($td, $encryptedData);

# Termina el manejador de descifrado y cierra el modulo
mcrypt_generic_deinit($td);
mcrypt_module_close($td);

# Muestra el descifrado
echo “Descifrado:\n{$decryptedData}\n\n”;
?>

Aquí se ha utilizado una clave de longitud fija de 32 caracteres, pero hay muchas más variantes y posibilidades. Desde utilizar una longitud aleatoria hasta tener 2 claves y un sin fin de opciones más. Podemos complicarlo lo que queramos, contra más complicado más difícil será reventarlo (aunque todavía no se conoce el método).

Ale!!

Sonycrow Código, Ejemplo, Php

Sumar tiempo (en horas) con PHP

Viernes, 21 de Diciembre de 2007

He tenido que crear un par de funciones para poder hacer sumas de horas con PHP. Por ejemplo, tenemos 2 horas: 1:20 y 2:10. En total suman 3:30 horas pero cuando tenemos un mogollon de horas, hacer una suma se nos hace un tanto complicado.

Bueno, si alguien las necesita aquí están:

function timeToMinutes($time)
{
$horaSplit = explode(“:”, $time);
if( count($horaSplit) < 3 ) {
$horaSplit[2] = 0;
}

# Pasamos los elementos a segundos
$horaSplit[0] = $horaSplit[0] * 60 * 60;
$horaSplit[1] = $horaSplit[1] * 60;

return (($horaSplit[0] + $horaSplit[1] + $horaSplit[2]) / 60);
}

function minutesToHours($mins)
{
$hours = floor($mins / 60);
$minutes = $mins – ($hours * 60);

if (!$minutes) {
$minutes = “00″;
}
else if ($minutes <= 9) {
$minutes = “0″ . $minutes;
}

return (“{$hours}:{$minutes}”);
}

Y para ejecutarlo, sería:

$minutos = timeToMinutes(“1:20″);
$minutos += timeToMinutes(“3:10″);
$minutos += timeToMinutes(“0:30″);
$totalEnHoras = minutesToHours($minutos);

Ale, espero que os sirva de algo :)

Sonycrow Código, Php, Programación, Scripts

Crear documentos PDF con PHP

Viernes, 21 de Diciembre de 2007

Pues aparte de la librería PDFlib de PHP (un tanto tosca) tenemos FPDF, unas librerías para crear archivos PDF de forma fácil y sencilla. Tiene unos tutoriales online y un manual, todo en perfecto Español y la verdad es que funciona muy bien. Yo la estoy utilizando y se pueden crear documentos bastante complejos y bonitos, incluso insertar imágenes.

La web oficial es http://www.fpdf.org y desde allí podréis hacer la descarga de la última versión.

También, recomendada si se necesitan crear archivos PDF.

Ale…

Sonycrow Php, Programación

Descomprimir archivos TAR o ZIP con PHP

Viernes, 21 de Diciembre de 2007

Buscando por la red para un proyecto que estoy realizando necesitaba poder subir un archivo comprimido en ZIP y descomprimirlo desde el propio script. Pues bien, aquí está la solución:

Clase para ZIP: http://www.phpconcept.net/pclzip/index.php
Clase para TAR: http://www.phpconcept.net/pcltar/index.php

No he necesitado instalar ningún módulo adicional de PHP ni nada por el estilo, pero seguramente tiene dependencias auqnue no he encontrado donde están. Su uso es muy simple y están bastante bien pensadas. Si necesitáis algo así os las recomiendo.

Para archivos RAR, no he encontrado nada decente, así que me da la sensación que tendremos que tirar de”exec()”.

Ale…

Sonycrow Php, Programación