Inu_Yasha 0 Denunciar post Postado Agosto 7, 2009 Olá, Preciso gerar uma espécie de rand(), mas um pouco diferente: Englobará letras e números: a-z, A-Z, 0-9. Consegui uma função: function salt($length) { $pattern = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxZz1234567890"; for($i=0;$i<$length;$i++) { $key .= $pattern{rand(0,9)}; } return $key; }Mas, dependendo do tamanho do "salt", ele simplesmente usa apenas letras. Queria que misturasse ambos, de diferentes tamanhos, e, se possível, não repetisse a mesma letra mais de uma vez.Alguém me dá uma luz? Obrigado, Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Agosto 7, 2009 Já tentou usar shuffle() para randomizar os resultados de range()? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 7, 2009 isso é só lógica. Você tem que fazer comparações com o número de letras, quantidade de números, e ir removendo ou inserindo caracteres ou dígitos. OBS: Seu rand() só vai de 0 a 9, sendo que você possui muito mais registros nessa string. E use range(), como citado. É bem mais simples e limpo Compartilhar este post Link para o post Compartilhar em outros sites
Inu_Yasha 0 Denunciar post Postado Agosto 7, 2009 Obrigado pela ajuda! ;) Compartilhar este post Link para o post Compartilhar em outros sites