← Tutoriais

[PHP] Iniciantes, "Randomizações"

Lida 22928 vezes

Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

ora vamos lá outra vez!  :wink:

"Randomizações"

mas para que raio serve isto? O que raio são "Randomizações"? (a partir de agora, vamos chama-las de Rand, para ficar mais curto! ;) )

imaginem que querem fazer um sistema "caseiro" de gestão de banners. Querem mostrar 5 banners no vosso site, todos no mesmo sitio e um de cada vez que a página é carregada. Para isso, precisam de 5 gifs ou jgs (swf ficam para um pouco mais tarde) e um código para os mostrar, correcto?

mas como é que os vão mostrar aleatoriamente? o php tem um comando que se chama rand, que faz com que o php escolha aleatoriamente um número entre x parametros. Um desses parametros é dizer-lhe no que se deve basear para escolher! Neste exemplo, vamos fazer o mais simples de todos que é srand(time());, onde ele se baseia no próprio relógio do sistema para isso. Ou seja, podemos escrever uma coisinha assim:

srand(time());
$random = (rand(1, 5));


com duas linhas apenas (não, não tem nada a ver com a palavra mãe  :lol: ) o php vai escolher um número, aleatoriamente, de 1 a 5.

agora, vamos a umas expressões e variáveis. para simplificar o código (logo, mais leve) vamos renomear os banners para banner_1.gi, banner_2.gif,etc. e vamos dar instruções ao php para mostrar esses banners:

<a href="LINK"><img border="0" src="banner_1.gif"></a> - isto seria um código simples em html para mostrar o banner_1.gif, mas para php, isto não serve...

<a href='LINK'><img border='0' src='banner_1.gif'></a> - Isto já serve! repararam que as " passaram a '?

então, ficaria algo do género:

Código: [Seleccione]
<?
srand(time());
$random=(rand(1, 5));
$banner='banner_'.$random.'.gif';
echo"<a href='LINK'><img border='0' src='$banner'></a>";
?>


traduzindo à letra:
srand(time()); - olá! vamos começar a usar o rand! (é o que temos que dizer ao php ;) )
$random=(rand(1, 5)); - escolhe um número de 1 a 5!
$banner='banner_'.$random.'.gif'; - perceberam esta? é simples. estamos a criar uma variável $banner que começa com banner_, insere o número em $random e termina com .gif. Estudem bem esta linha! vai dar muito jeito em futuras formulas! ;)
echo"<a href='LINK'><img border='0' src='$banner'></a>"; - echo a linha de imagem HTML, mas com as " substituidas por '.

ao gravarmos isto num ficheiro .php e abrindo no browser, ele vai escolher 1 de 5 banners ao calhas. e temos um sistema "caseiro" de gestão de banners!  :D

dúvidas? postem à vontade!

e para TPC (sim, não podia faltar  :twisted: )  quem me diz como é que se faz se eu renomear os banners para 1_banner.gif? :D
Offline

icaro 
Membro
Mensagens 128 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

será?

Código: [Seleccione]
$banner=$random.'_banner'.'.gif';
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Citação de: "icaro"
será?

Código: [Seleccione]
$banner=$random.'_banner'.'.gif';


quase, quase quase lá! estão 3 caracteres a mais!  :wink:
Offline

icaro 
Membro
Mensagens 128 Gostos 0
Troféus totais: 26
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

a ver...



Código: [Seleccione]
$banner=$random'_banner.gif';
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

:D quase! falta um ponto... ;)

fica

Código: [Seleccione]
$banner=$random.'_banner.gif';
Offline

karrico 
Membro
Mensagens 2962 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 2500 Posts

bom post morpheus :)
Offline

kebrus 
Membro
Mensagens 459 Gostos 0
Troféus totais: 25
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

ainda bem que falas-te disto, é que eu nunca percebi bem esta funçoes do php, mais propriamente isto: srand(time());

pra que é necessario utilizar isto e porquê srand? sinceramente nunca percebi
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

ok, então deixa-me por as coisas assim. podes/deves definir em que o código se deve basear ao escolher um rand. o srand(time()); é o mais simples de todos, visto que vai se basear no time do sistema. são precisos poucos recursos e torna-se mais rápido. mas imagina que precisas de usar dois rands na mesma página. com o time, prvavelmente vai ser escolhido o mesmo valor nas duas situações (ex, dois banners iguais), o que não interessa.

outra maneira de fazer a coisa é através de um makeseed. mas come mais recursos! ;)
Offline

Tartaruga 
Membro
Mensagens 2908 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Código: [Seleccione]
$banner='.$random.'_banner.gif';

Será isto?
Offline

PTNetworks 
Membro
Mensagens 315 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Gostei do Post :)

Afinal o PHP não é assim tão complicado como parece :)

Cumprimentos.
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Citação de: "Tartaruga"
Código: [Seleccione]
$banner='.$random.'_banner.gif';

Será isto?


ja respondi em cima, tartaruga ;)
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Citação de: "PTNetworks"
Gostei do Post :)

Afinal o PHP não é assim tão complicado como parece :)

Cumprimentos.


para primeiros passos... não...

espera até desenvolveres  :twisted:  :lol:
Offline

PTNetworks 
Membro
Mensagens 315 Gostos 0
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

hehe

Acho que vou continuar com ASP.NET, pelo menos já precebo umas coisitas :)
Offline

Tartaruga 
Membro
Mensagens 2908 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "morpheus"
Citação de: "Tartaruga"
Código: [Seleccione]
$banner='.$random.'_banner.gif';

Será isto?


ja respondi em cima, tartaruga ;)


Já? LOL onde?

é que tu disseste que faltava um ponto... e eu acrecentei um ponto e um '

Porque me pareceu mais próximo ao que está no tuturial... :?
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Citação de: "morpheus"
:D quase! falta um ponto... ;)

fica

Código: [Seleccione]
$banner=$random.'_banner.gif';


aqui já tinha acrescentado o ponto ;)