← Desenvolvimento

Script em PHP para uma galeria de imagens rotativa

Lida 17616 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

OK... prometido é devido.
Como é uma questão que muitos webmasters fazem fica aqui uma (das muitas) soluções.

Como criar uma galeria que mostra imagens diferentes sempre que alguém abre a página?

Vou abordar a maneira mais simples que me consigo lembrar, para que todos compreendam. Não há aqui bds pelo meio.

Partindo do principio que as imagens são .jpg e estão num directório chamado imagens, um simples script em PHP faz isso:

(o que está depois de cada # é um comentário. Podem retirar do código que funciona na mesma!)

Código: [Seleccione]
<?

# Definir o nº de imagens disponíveis
$max=3;

# Quantas imagens mostrar na página. Não é necessário ser menor do que as imagens (mas se for, vai repeti-las ;)
$repeat=2;

# Criar o seed para escolher um nº ao calhas
function make_seed(){
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);}

# Começar a repetir :)
$i=0;
while($i<$repeat){
$i++;
srand(make_seed());

# Escolher um número ao calhas
$random = (rand(1, $max));

# Se x número, mostrar x imagem com x link! Este ifs tem que ser igual ao nº de imagens. é aqui que define o link e mostra o html com as imagens. Podem ser 3 ,5, 99, os que forem necessários.
if($random=='1'){echo"<a href='LINK1'><img border='0' src='imagens/1.jpg' width='100' height='150'></a>&nbsp;";}
if($random=='2'){echo"<a href='LINK2'><img border='0' src='imagens/2.jpg' width='100' height='150'></a>&nbsp;";}
if($random=='3'){echo"<a href='LINK3'><img border='0' src='imagens/3.jpg' width='100' height='150'></a>&nbsp;";}
}
?>


et voilá!  8)

guardam como qualquer_coisa.php e fazem um include na página que querem que mostre as pics. Ou então, metem o código directamente na página. Não se esqueçam que tem que ter uma extensão .php!

Dúvidas, postem aqui!
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Uma dúvida: como raio é que consegues escrever código com essa rapidez?

Está excelente! Obrigado! :D
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

epa... tem que se ver a matrix... :twisted:  :twisted:
red pill or blue pill!  :rockcrack:
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

:lol:  :lol:  :lol:

Um dia destes lá vou ter de tomar a pílula ;)
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: "fpware"
:lol:  :lol:  :lol:

Um dia destes lá vou ter de tomar a pílula ;)


Podes sempre esperar e tomar a do dia seguinte... mas é mais arriscado!
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

:lol:  :lol:  :lol:
 :superlolada:
Offline

BL4CKIC3 
Membro
Mensagens 3439 Gostos 0
Troféus totais: 32
Trófeus: (Ver todos)
Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3

:lol:  :lol:  :lol:

Essa so mesmo em caso de Emergencia   :twisted:
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

mas que  :offtopic: que isto está!  :D
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

:lol:  É a cena do costume...

Morpheus, em versão bd e com algumas alterações este script vale dinheiro, sabias?
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

também queres em bd? é só acrescentar mais algumas linhas...  8)

relativamente ao dinheiro... acrescenta a ideia à lista!  :wink:
Offline

cremosin 
Membro
Mensagens 920 Gostos 1
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 500 Posts

Hehe, o morpheus é um raio  :superman:

Testei aqui e funciona legal. Porém os eventos se repetem. Exemplo:

Sequência de exibições:

foto 1 + foto1
foto 2 + foto2
foto 3 + foto3
...
foto N + fotoN


Dica legal sem uso de banco de dados: Quem quiser pode usar antes de cada link uma outra página tal como "contador.php" para saber a origem dos usuários no site.  :P
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Já está acrescentada ;)

Se quiseres meter em bd, por mim, tudo ok ;)
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: "cremosin"
Hehe, o morpheus é um raio  :superman:

Testei aqui e funciona legal. Porém os eventos se repetem. Exemplo:

Sequência de exibições:

foto 1 + foto1
foto 2 + foto2
foto 3 + foto3
...
foto N + fotoN


Dica legal sem uso de banco de dados: Quem quiser pode usar antes de cada link uma outra página tal como "contador.php" para saber a origem dos usuários no site.  :P


quantas fotografias estás a usar?
é que isto é matemático. Quanto menor o nº de fotografias, maior a probabilidade de se repetirem... por ex. com 3 fotografias de origem, a mostrar 3 na página, existe uma hipótese de 33% de se repetirem (a mesma coisa com 6/6 ou 12/12).
Contudo, se for 6/3, as hipóteses descem para 16.6%.
Offline

fpware 
Fundador
Mensagens 15318 Gostos 6
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

Deve ser possível impedir que uma fotografia se repita na página, certo?
Offline

cremosin 
Membro
Mensagens 920 Gostos 1
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 500 Posts

Citação de: "fpware"
Deve ser possível impedir que uma fotografia se repita na página, certo?


Exato. Ai vai valer muito dinheiro  :P

No caso da probabilidade:

Quero exibir dois de três objetos de cada vez:

1/3 e 1/2 = 1/6 ou 16,67% de propabilidade dos objetos não se repetirem.