PHPPHP - Usando RAND() para crear una cadena aleatoria

PHP – Usando RAND() para crear una cadena aleatoria

-

- Advertisment -

La función RAND() en php nos devuelve un numero aleatorio al azar de 0 hasta el máximo posible (getrandmax() para saber cual es el mayor numero posible) entre sus usos puede ser crear un dado para juegos en donde deberíamos indicar que el mínimo es 1 y el máximo será 6

<?php
$numerodado = rand(1,6); //nos dará 1,2,3,4,5 o 6
echo $numerodado;
?>

otro uso es por ejemplo mostrar un banner de manera aleatorio o que rote

<?php
switch (rand(1,5))
    case 1: 
        $titleimage = "/images/banners13/1.gif"; 
        break; 
    case 2: 
        $titleimage = "/images/banners13/2.gif"; 
        break; 
    case 3: 
        $titleimage = "/images/banners13/3.gif"; 
        break; 
    case 4: 
        $titleimage = "/images/banners13/4.gif"; 
        break;    
    case 5: 
        $titleimage = "/images/banners13/5.gif"; 
        break;  
}
/*una manera más corta del SWITCH de arriba seria:
$titleimage = "/images/banners13/".rand(1,5).".gif";*/
?>

Aquí el código para Generar una cadena de forma aleatoria, por ejemplo un password autogenerado.

<?php
$caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; //posibles caracteres a usar
$numerodeletras=10; //numero de letras para generar el texto
$cadena = ""; //variable para almacenar la cadena generada
for($i=0;$i<$numerodeletras;$i++)
{
    $cadena .= substr($caracteres,rand(0,strlen($caracteres)),1); /*Extraemos 1 carácter de los caracteres 
entre el rango 0 a Numero de letras que tiene la cadena */
}
echo $cadena;
?>

20 COMENTARIOS

  1. Muy bien pensado. Cuando lei el titulo pensaba en que lo harias mediante los valores decimales de cada letra en la tabla ASCII, pero como tu lo has hecho es mucho mas facil.

  2. En el autogenerado de contraseña final…creo que lo habéis hecho más difícil de lo que podría ser, os podríais haber ahorrado el bucle por ejemplo. Mi código es este:

    $caracteres = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890”;
    $desordenada = str_shuffle($caracteres);
    $password = substr($desordenada, 1, 10);
    echo $password;
    ?>

    Con la funcion str_shuffle() desordenamos la cadena, por lo que siempre pillamos del puesto 1 hasta el 10, pero al desordenarse cada vez, nunca saldrá la misma contraseña. Lo he probado y funciona muy bien, y creo que es bastante más fácil, aunque si es para recordar como usar bucles y todo eso esta bien.

    Os habla un novatillo jeje, espero haber ayudado.

  3. No se si te refieres a:
    $var = rand(1,10);

    En este caso $var tendrá un valor aleatorio entre 1 y 10, podría ser 3, 5, 7, o 1.. será aleatorio cada vez que se ejecute el archivo.php

  4. Excelente código. Pocas veces dejo un comentario y solo lo hago cuando funciona la solución encontrada y esta acorde con el objetivo que se desea alcanzar.

  5. buen aporte chicos, tengo una gran duda como puedo crear variables (nuevas) dentro de un rutina en php, como por ejemplo, en cierta linea de mi codigo que se genere una variable llamada $materia1, $materia2, $materia3 o cualquier otro numero dependera eso de unos datos que saque deuna base de datos en mysql. saludosy gracias.

    • lo que pides si es posible, pero para eso existe los arrays, $arreglo[1], $arreglo[2], etc, ademas que existen funciones que te pueden ayudar como foreach, y un sin fin de posibilidades con arrays,

      en tal caso lo que pides si es posible y aqui te dejo el codigo de ejemplo:

      Contenido de string como variable

      “;

      echo $prueba1;

  6. Gracias Jhonnyf, no solo por tu aporte, si no resolverlo de manera que yo tenia idea y ademas por la manera mas viable de lo array. Me queda muy claro, muy agradecido.

    • El foreach al usarlo con arrays, puedes recorrer los elementos o elementos y su índice, y la sintaxis es como la muestro, es decir: foreach ($array as $clave=>$elemento) El “=>” es parte de la sintaxis

  7. Yo voy a dejar el código que he pensado para generar un número aleatorio entre 1 y 10.99 con dos decimales. Espero que os pueda servir
    <?php
    // $e guarda un número aleatorio entre 1 y 10 (parte entera)
    $e=rand(1,10);

    // $ce guarda el string del número aleatorio $e
    $ce= (string) $e;

    /* $d1 guarda un número aleatorio entre 0 y 9 (decimal 1)*/
    $d1=rand(0,9);

    //$cd1 guarda el string del número aleatorio $d1
    $cd1= (string) $d1;

    /* $d2 guarda un número aleatorio entre 0 y 9 (decimal 2)*/
    $d2=rand(0,9);

    //$cd2 guarda el string del número aleatorio $d2
    $cd2= (string) $d2;

    /*$cnum guarda la cadena del número decimal como string*/
    $cnum= $ce.".".$cd1.$cd2;

    /* $nota almacena el número decimal (float) de la cadena $cnum*/
    $nota= (float) $cnum;

    echo $nota."”;

    if ($nota<5){

    echo "Suspenso";
    }
    elseif ($nota<6){

    echo "Suficiente";
    }
    elseif ($nota<7)
    {
    echo "Bien";
    }
    elseif ($nota

  8. En realidad del código para generar un número aleatorio de dos decimales sería este, el anterior lo he incluido en un script para escribir la calificación de la nota aleatoria

    // $e guarda un número aleatorio entre 1 y 10 (parte entera)
    $e=rand(1,10);

    // $ce guarda el string del número aleatorio $e
    $ce= (string) $e;

    /* $d1 guarda un número aleatorio entre 0 y 9 (decimal 1)*/
    $d1=rand(0,9);

    //$cd1 guarda el string del número aleatorio $d1
    $cd1= (string) $d1;

    /* $d2 guarda un número aleatorio entre 0 y 9 (decimal 2)*/
    $d2=rand(0,9);

    //$cd2 guarda el string del número aleatorio $d2
    $cd2= (string) $d2;

    /*$cnum guarda la cadena del número decimal como string*/
    $cnum= $ce.”.”.$cd1.$cd2;

    /* $nota almacena el número decimal (float) de la cadena $cnum*/
    $nota= (float) $cnum;

    echo $nota;

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Últimas Noticias

WordPress – Crear BBCODE o shortcode personalizados

Los BBCODES o "shortcode" son esas funciones que tiene Wordpress y que se usan con corchetes, que generalmente te...

WordPress – Enviar título de la página o campo oculto, en Contact Form 7

Problema: Tengo un cliente que tiene una web con muchos productos y en todas sus páginas usa el mismo formulario...

Laravel – Modo Debug según IP

En algunos casos se necesita el modo DEBUG según IP, por ejemplo cuando estamos en producción y tenemos un...

Reemplazar URLs cuando cambias de dominio en WordPress (también de http a https)

Cuando haces un cambio de dominio por alguna razón (antes te llamabas www.viejodominio.com y ahora www.nuevodominio.com) si bien ya...
- Advertisement -

Como ejecutar comandos Artisan desde consola Git

Voy a suponer que ya tienen instalado el composer y php de manera global y un proyecto en Laravel....

Ejecutar Composer y/o PHP de manera Global en Windows

Si por alguna razón al instalar Composer este no funciona desde cualquier ruta estando en linea de comandos (ya...

Debe leer

- Advertisement -

También podría gustarteRELACIONADA
Recomendada para usted