borrame.com - Colección particular de recortes de código y documentación para programación web

Lo más fresco

  1. LPAD en SQL Server Nuevo
  2. Eliminar todos los objetos en SQL Server Modificado
  3. Dominio principal Nuevo
  4. Eliminar formato en Excel Nuevo

Sugerencias del chef

Lo más visitado

  1. Dar formato a un número
  2. Campo autonumérico
  3. Fecha y hora
  4. Cookies
  5. Convertir IP entre cadena y número

Cadena aleatoria

Una cadena aleatoria es algo que siempre viene bien.

/*
 * Devuelve una cadena aleatoria de la longitud indicada
 * Los caracteres se eligen de la lista [opcional] proporcionada
 */

function cadena_aleatoria($longitud=16, $caracteres='0123456789abcdefghijklmnopqrstuvwxyz'){ // v2008-03-17
    $cadena = '';
    $max = strlen($caracteres)-1;

    for($i=0; $i<$longitud; $i++){
        $cadena .= $caracteres[mt_rand(0, $max)];
    }
    return $cadena;
}

Ejemplos de uso

// Imagen que no se lee de la caché
echo '<img src="foo.png?' . cadena_aleatoria() . '">';

// Generar una contraseña
echo cadena_aleatoria(8);

// Rellenar una quiniela
echo cadena_aleatoria(14, '111XX2');

// Dar conversación a un robot
echo cadena_aleatoria(1024, ' 01');

Historial

v2008-03-17
Eliminado mt_srand(), es innecesario desde PHP/4.2.0.
Naturalmente, es suficiente con calcular la longitud de $caracteres una vez.
Reemplazado el operador {} por [] (las llaves las van a quitar en PHP/6).
v2005-05-24
Primera versión.

Gracias a Pedro Graca por llamarme la atención sobre los dos fallos obvios de la primera versión... en diciembre de 2005. Más vale tarde que nunca.

Esta página ha sido impresa el jueves 11 de marzo de 2010 (20:51:24 +0100) desde http://borrame.com/recortes/php/cadena-aleatoria.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2010 by Álvaro G. Vicario (alvaro.es) • Burgos (España) • borrame.com