Generar cadenas con carácteres aleatorios con PHP

Justamente el otro día pensé que necesitaba hacer una función que generara cadenas con un tamaño específico de carácteres aleatorios y mira tu por dónde, leyendo un artículo me he encontrado con una hecha:

function __randomString($minlength = 20, $maxlength = 20, $useupper = true, $usespecial = false, $usenumbers = true){
        $charset = "abcdefghijklmnopqrstuvwxyz";
        if ($useupper) $charset .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        if ($usenumbers) $charset .= "0123456789";
        if ($usespecial) $charset .= "~@#$%^*()_+-={}|][";
        if ($minlength > $maxlength) $length = mt_rand ($maxlength, $minlength);
        else $length = mt_rand ($minlength, $maxlength);
        $key = '';
        for ($i=0; $i<$length; $i++){
            $key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
        }
        return $key;
    }

Me gusta bastante, excepto la parte que determina el tamaño de la cadena devuelta. De un primer vistazo no se entiende (claro que yo soy un poco tonto).

De paso también nos invita a dar una vuelta por la función mt_rand.

Tags: ,

Leave a Reply