Jump to content


Photo

Gerar Um Id Aleatória


  • Faça o login para participar
6 replies to this topic

#1 thim

thim

    People are strange, when you're a stranger

  • Usuários
  • 213 posts
  • Sexo:Masculino
  • Localidade:Itap da serra-sp
  • Interesses:Ganhar muito dinheiro com pouco esforço, hahuauhahu

Posted 01/04/2007, 22:43

Olá, preciso criar um id aleatória, eu pensei em usar a função uniqid, mas ela gera muitos caracteres, eu preciso de menos, uma de 5 caracteres =]

Como posso fazer??


falou B)

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 01/04/2007, 23:12

Veja este tópico:
http://forum.wmonlin...howtopic=174572
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 thim

thim

    People are strange, when you're a stranger

  • Usuários
  • 213 posts
  • Sexo:Masculino
  • Localidade:Itap da serra-sp
  • Interesses:Ganhar muito dinheiro com pouco esforço, hahuauhahu

Posted 01/04/2007, 23:20

Veja este tópico:
http://forum.wmonlin...howtopic=174572



Teria como me esplicar esse código:

<pre><?phpprintf("%s\n", microtime());for ($i = 0; $i < 29999; $i++) {    printf("%d - %08X\n", time(), crc32(time()));}printf("%s\n", microtime());?>
ele irá gerar uma id de quantos caracteres??
Só lembrando, preciso que gere 6 caracteres (numeros e letras).
valeu =]

Edição feita por: thim, 02/04/2007, 00:12.


#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 02/04/2007, 00:50

Esse código é apenas para mostrar como é repetido o valor, já que time() não informa os milisegundos.

O motivo pelo qual indiquei o tópico foi pelo último comentário, postado pelo amigo Paulo Ricardo. ;)


Acredito que 6 caracteres não seja o adequado para o que deseja.

Edição feita por: Eclesiastes, 02/04/2007, 15:45.
Acréscimo de informação.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 thim

thim

    People are strange, when you're a stranger

  • Usuários
  • 213 posts
  • Sexo:Masculino
  • Localidade:Itap da serra-sp
  • Interesses:Ganhar muito dinheiro com pouco esforço, hahuauhahu

Posted 03/04/2007, 16:03

Esse código é apenas para mostrar como é repetido o valor, já que time() não informa os milisegundos.

O motivo pelo qual indiquei o tópico foi pelo último comentário, postado pelo amigo Paulo Ricardo. ;)


Acredito que 6 dígitos não seja o adequado para o que deseja.


Valeu cara, mas você tem alguma ideia de como eu possa fazer uma id aleatógia de 6 digitos (numeros e letras)?

Falou B)

Mais alguem?

#6 diego.rodriguez

diego.rodriguez

    Hey Ho Let's Go!

  • Usuários
  • 497 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte | MG
  • Interesses:.: programação<br />.: fotografia<br />.: PHP<br />.: punk rock/hc<br />.: games<br />.: brahma

Posted 03/04/2007, 22:02

<?
$sConso = 'bcdfghjklmnpqrstvwxyzbcdfghjklmnpqrstvwxyz';
$sVogal = 'aeiou';
$sNum = '123456789';
$pedido = '';

$y = strlen($sConso)-1; //conta o nº de caracteres da variável $sConso
$z = strlen($sVogal)-1; //conta o nº de caracteres da variável $sVogal
$r = strlen($sNum)-1; //conta o nº de caracteres da variável $sNum

for($x=0;$x<=1;$x++){
$rand = rand(0,$y); //Funçao rand() - gera um valor randômico
$rand1 = rand(0,$z);
$rand2 = rand(0,$r);
$str = substr($sConso,$rand,1); // substr() - retorna parte de uma string
$str1 = substr($sVogal,$rand1,1);
$str2 = substr($sNum,$rand2,1);

$geraNum .= $str.$str1.$str2;
}
?>

#7 Tibério Brasil

Tibério Brasil

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 17/04/2007, 13:34

Desenvolvi uma classe que pode retornar 3 tipos de strings aleatórias:
  • Minúscula
  • Maiúscula
  • Aleatória (minúsculas e maiúsculas)
Outros fatores importantes são:
  • O tamanho da string de retorno é definido por você
  • Você poderá adicionar caracteres especiais à sua string
<?    class stringAleatoria {    // cria a classe que retornará um conjunto aleatório de strings            var $arr = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9');        // neste array deverão ficar todas as variáveis possíveis        // neste exemplo só possui strings alfanumérias (a-z e 0-9)        // você também poderá colocar caracteres especiais ( ! @ # $ % & * )        //        // para acessá-la dentro da classe: "$this->arr"        var $ret;        // variável de retorno da string desejada        var $tmp;        // variável que guardará à cada volta do laço o caractere em questão                function criaMinuscula($tam) {        // função que retorna a string minúscula (a-z)            for($i=1;$i<=$tam;$i++){            // este laço percorre de 1 até o número desejado de caracteres                $tmp = $this->arr[rand(0,count($this->arr)-1)];                // cria uma variável temporária com o caractere de retorno                if(is_string($tmp)){                // se for uma string (a-z)                    $ret .= strtolower($tmp);                    // retorna as strings em minúsculo                } else {                // se não for string, adiciona ela à variável final                    $ret = $ret.$tmp;                }            }            return $ret;            // retorna a varíavel que contém o conjunto de caracteres minúsculos de tamanho $tam        }        function criaMaiuscula($tam) {        // função que retorna a string maiúscula (A-Z)            for($i=1;$i<=$tam;$i++){            // este laço percorre de 1 até o número desejado de caracteres                $tmp = $this->arr[rand(0,count($this->arr)-1)];                // cria uma variável temporária com o caractere de retorno                if(is_string($tmp)){                // se for uma string (a-z)                    $ret .= strtoupper($tmp);                    // retorna as strings em maiúsculo                } else {                // se não for string, adiciona ela à variável final                    $ret = $ret.$tmp;                }            }            return $ret;            // retorna a varíavel que contém o conjunto de caracteres maiúsculos de tamanho $tam        }        function criaAleatoria($tam) {        // função que retorna a string aleatória (a-z e A-Z)            for($i=1;$i<=$tam;$i++){            // este laço percorre de 1 até o número desejado de caracteres                $tmp = $this->arr[rand(0,count($this->arr)-1)];                // cria uma variável temporária com o caractere de retorno                if(is_string($tmp)){                // se for uma string (a-z)                    $x = rand(0,1);                    // variavél aleatória 0 ou 1                    if($x == 0){                    // se a variável for 0 o caractere será minúsculo                        $ret .= strtolower($tmp);                        // retorna as strings em minúsculo                    } else {                    // se a variável for diferente de 0 o caractere será maiúsculo                        $ret .= strtoupper($tmp);                        // retorna as strings em maiúsculo                    }                } else {                // se não for string, adiciona ela à variável final                    $ret = $ret.$tmp;                }            }            return $ret;            // retorna a varíavel que contém o conjunto de caracteres aleatórios de tamanho $tam        }    }    $var = new stringAleatoria();    // instanciando a classe stringAleatoria    $min = $var->criaMinuscula(20);    // retorno da string minúscula de 20 caracteres    $mai = $var->criaMaiuscula(20);    // retorno da string maiúscula de 20 caracteres    $ale = $var->criaAleatoria(20);    // retorno da string aleatória de 20 caracteres    echo '<pre> » Minúscula: '.$min.'<br> » Maiúscula: '.$mai.'<br> » Aleatória: '.$ale.'</pre>';    // imprime os resultados?>


Qualquer dúvida é só postar.
Abraços.

Edição feita por: Tibério Brasil, 17/04/2007, 13:37.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq