Ir para conteúdo
Fórum Script Brasil
  • 0

Número aleatório


alexandremanowar

Pergunta

E ae pessoal beleza

Pesquisei na net como montar números aleatórios em php e consegui montar esse exemplo abaixo, porém estou com um problema, preciso montar números aleatório sempre com 11 digitos, com o exemplo abaixo não consegui ele monta com 9 com 11 com 10 e assim por diante e preciso também que o número sempre seja positivo, alguém saber como arrumar essa função abaixo para isso? Ou seja gerar sempre 11 digitos positivos?

<?
function initRand ()
{
   static $randCalled = FALSE;
   if (!$randCalled)
   {
        srand((double) microtime() * 100000);
        $randCalled = TRUE;
    }
 }
function randNum ($low, $high)
{
     initRand();
     $rNum = rand($low, $high);
     return $rNum;
}


// Exemplo de uso. 
// setando o mínimo é o máximo que o número aleatório deve chegar
$num_imagem = randNum(9000000000,9999999999);

// exibindo uma imagem (imagem_1.jpg, imagem_2.jpg, etc.)
echo "$num_imagem";

?>

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Tudo bom? É fácil:

<?php
  function rand11() {
    $rand = "";
    for($i=0;$<11;$i++)
      $rand.=rand(0,9);
    return $rand;
  }
?>

Por favor, lembre: teste o código! Eu não testei, escrevi-o rapidamente.

Abraços! :ninja:

Editado por Wanderson Camargo
Link para o comentário
Compartilhar em outros sites

  • 0

Valeu cara Funcionou legal!

Por favor me explica essa parte:

for($i=0;$i<11;$i++)
      $rand.=rand(0,9);
    return $rand;
  }

Obrigado

Editado por alexandremanowar
Link para o comentário
Compartilhar em outros sites

  • 0

Claro! =D

Esta linha:

$rand.=rand(0,9);
É idêntica à linha:
$rand = $rand . rand(0,9);

O que acontece: a variável $rand é inciada com string vazia fora do laço for. Quando o laço é iniciado ele gera 11 números pseudo-randômicos, concatenando um a um no final da variável $rand, criando uma espécie de "fila" (ou seja, um atrás do outro). Quando termina o laço, você terá 11 posições em uma string, que é retornada ao final da função.

=)

Link para o comentário
Compartilhar em outros sites

  • 0

Certo entendi, agora só para encomodar mais um pouco se não estou engando o parte do valor entre parenteses (0,9), signica o número máximp e o minimo para multiplicação certo? Ou estou errado?

Valeu pela atenção

Link para o comentário
Compartilhar em outros sites

  • 0

Você está vindo do Java, certo? XD

Eu noto isto na tua programação primária onde você multiplicava por um número para subir o pseudo.

Sim é como você disse: é o máximo e o mínimo para geração; dica: utilize o manual =)

http://br.php.net/manual/pt_BR/function.rand.php

Link para o comentário
Compartilhar em outros sites

  • 0

Sabia!

Aproveite então e faça uma programação melhor: utilize PHP orientado a objetos. Não possui todas as funcionalidades que o Java possui, como sobrecarga; porém o código fica muito melhor: cultive esse estilo.

Abraços! Qualquer coisa grite!

OBS: Por favor, coloque no título do tópico (Resolvido)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...