+6

Aleatoridade em PHP

criado por Sérgio m. da silva em 24/02/2005 10:43pm
Saudações, estou aqui pra falar sobre aleatoridade e, php, vou mostrar como gerar número aleatórios, e usa-los pra fazer scripts como "imagens aleatórias", "frases aleatórias", etc.
Primeiro, vou ensinar como gerar número aleatórios, veja o seguinte script:

<?php
$numero = rand(0,100);	
// a váriavel $numero terá um numero aleatório (função rand) este numero será de 0 a 100.

echo"O numero Gerado foi $numero. [Presione F5 para gerar outro]";
// Mostrar o numero gerado
?>

Neste script a função 'rand' gera um número diferente entre 0-100 cada vez que você entrar na página, ou atualizar ela.

Agora, vamos aprender a criar um script, pra cada vez que a página abra, ele mostre uma imagem diferente. Veja o Script:

<?php
$foto = rand(1,5);
// gerando um número de 1, a 5

echo "<img src=\"$foto.jpg\">";
// Através do "echo" mostrar a $foto.jpg que no caso o $foto será um numero de 0 a 10
?>

Você antes de tudo tem que renomear suas fotos pra numeros, então eu renomeei aqui as fotos como 1.jpg, 2.jpg e assim até a ultima que era 10.jpg.
Cada vez que a página é aberta, ele gera um numero aleatório, digamos que ele gerou 5, então a váriavel $foto será 5, que dentro do "img src" ficará assim <img src=5.jpg> e então abrirá a foto 5.jpg, o uso dos \ antes das aspas ("") é por motivo que ele é um código html, que está dentro de outras aspas, as aspas do echo.

Agora, vamos contruir um script que cada vez que você entre em uma página, ele mostre uma frase diferente, veja:

<?php
$frase[0] = 'ola';
$frase[1] = 'oi';
$frase[2] = 'td bem ?';
// Criamos uma array, com 3 frases, lembre-se de colocar a primeira 0

$numero = rand(0,2);
// Gerando um número de 0-2 

echo"$frase[$numero]";
// Mostrando a frase 
?>

Primeiro criamos a array, pode-se criar quantas quiser, depois vamos gerar um $numero, digamos que o $numero foi 2, então no echo, ele vai mostrar assim $frase[2] lembrando, que o 2 foi gerado aleatoriamente, e desta vez vai mostrar a 3ª frase ($frase[2]).

Acho que vocês já entenderam o recado, usar aleatoridade é muito fácil!
Combinado com Arrays, você pode fazer vários scripts, ou até sem elas..
Espero que esteja claro, o que tentei passar, dúvidas pode me contatar!

sergio_mendes_@hotmail.com

Comentários:

Mostrando 1 - 10 de 30 comentários
ralph vianna disse:
aee...
mto bom o artigo!
so iniciante em PHP, ta me ajudando bastante.

Como faço p/ mostrar uma palavra gerada aleatoriamente em uma outra pagina?

tipow...em uma eu gero uma palavra e nessa pag eu coloquei um botao q encaminha p/ uma outra pag e gostaria d mostrar na tela essa palavra gerada inicialmente.

Grato!
d:D
20/03/2006 10:37pm (~18 anos atrás)

Crie uma array.

var$[0] = "a"
var$[1] = "b"

echo var$[n_aleatorio$];

=]
12/12/2005 6:12am (~18 anos atrás)

Usei isso pra gerar uma imagem de confirmacao com gd.
Mas eu queria saber como gerar aliatoriamente letras de A a Z tanto maiuscula quanto minuscula.
11/12/2005 11:52pm (~18 anos atrás)

poxa.. bem legal mesmo eu não conhecia 'rand'

depois vo testar
;)
28/09/2005 11:34am (~18 anos atrás)

Este artigo é muito simples mas dele foi gerado muitos outros. Mas mesmo simples foi muito util para mim, aprendi muito.
26/09/2005 10:22am (~18 anos atrás)

Felipe disse:
Eu sou iniciante da tecnologia php(mesmo vindo do asp.net)
Muito bom o artigo!!!
26/09/2005 4:52am (~18 anos atrás)

Eis então a minha contribuição...

Tive necessidade de listar alguns banners, mas que nenhum tivesse uma posição privilegiada no site. Ou seja, a cada acesso é escolhida uma ordem aleatória, tambem usando rand(). Para não haver previlégio para os banners do topo sobre os demais.
Sou iniciante em PHP, portanto qualquer erro, sugestão, ou critica entrem em contato ou postem aí.
Então fiz o código a seguir.

Valew

<?
$fotos = array("imagem1.jpg", "imagem2.gif", "imagem3.png", "imagem4.gif", "imagem5.gif");
imprime_fotos(count($fotos), $fotos);

function imprime_fotos($nfotos, $vfotos)
//$nfotos é o numero de fotos que ainda não foram impressas
//$vfotos é um array das fotos que ainda não foram impressas
{
if($nfotos>1)
{
$atual = rand(0, $nfotos-1);

echo "<img src='imagens/$vfotos[$atual]'><br>";
for($i=$atual; $i<$nfotos-1; $i++)
{
$vfotos[$i] = $vfotos[$i+1];
}
$nfotos--;
imprime_fotos($nfotos, $vfotos);
}
else
{
echo "img src='imagens/$vfotos[0]'";
}
}
?>
11/08/2005 2:36pm (~18 anos atrás)

Marcio Coan disse:
Simples, mas valeu a intenção, dá para fazer muita coisa com a função rand, usem a imaginação....

Abraço
27/07/2005 10:59am (~18 anos atrás)

Eu estou estagiando PHP faz 3 meses, aprendi muita coisa, e o mais importante é que os códigos simples, bem explicados e sem complicações facilitam não só minha vida, como a da equipe de trabalho que realiza o projeto. Por isso acredito que é muito importante saber este básico.
25/07/2005 9:26am (~18 anos atrás)

O exemplo passado por morawell.É funcional por ser aleatorio.
07/07/2005 6:50pm (~18 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)