Kantrum Postado Fevereiro 18, 2010 Denunciar Share Postado Fevereiro 18, 2010 (editado) Olá pessoal Queria me me ajudasse numa parte do código olha só:<?php $pasta = 'banners';$width = '640'; $height = '60'; if ($diretorio = opendir($pasta)) {$n = 0;while (false !== ($arquivo = readdir($diretorio))) {//if(filetype($pasta.'/'.$arquivo) != 'dir' && $file != 'Thumbs.db') //não da bola {$n++;define($n."banner",$pasta.'/'.$arquivo);} } closedir($diretorio); $banner = constant(rand(5,$n)."banner"); } echo "<img src=\"$banner\" width=\"$width\" height=\"$height\" />"; echo "<img src=\"$banner\" width=\"$width\" height=\"$height\" />"; //pesssoal aki seria pra mostrar outra imagem ?>é os eguinte o script funciona mas se eu colocar + de um banner vai aparecer todos iguais eu quero que ele puxe outro aleatório exemplo:$banner1 = constant(rand(5,$n)."banner");$banner2 = constant(rand(2,$n)."banner"); SÓ QUE OBVIO DA CRASH NA CONSTANT DO SEGUNDO ^^ } echo "<img src=\"$banner1\" width=\"$width\" height=\"$height\" />"; echo "<img src=\"$banner2\" width=\"$width\" height=\"$height\" />"; tipo ele pega qualquer um não é programado pra pega A , B, C ele pode pegar B, C, A, C, B, C, A, C, B tanto faz so que quero que mostre 15 diferentes Banner1 = sorteou o "C"Banner2 = sorteou o "A"SO QUE NO MEU CÓDIGO TA ASSIM:Banner1 = sorteou o BBanner2 = sorteou o Batualiaza paginaBanner1 = sorteou o ABanner2 = sorteou o Aatualiza paginaBanner1 = sorteou o CBanner2 = sorteou o C espero que me ajudem quero que sortei qualquer 1 mas cada banner diferente que ta na pasta Editado Fevereiro 18, 2010 por Kantrum Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SAULO A. Postado Fevereiro 18, 2010 Denunciar Share Postado Fevereiro 18, 2010 Era algo assim!?<?php $largura = 640; $altura = 60; // Retorna um elemento de indice aleatorio function retornaAleatorio($array) { return $array[rand(0, count($array))]; } // retorna um array com os arquivos de uma pasta com uma determinada extensao function carregaArquivos($pasta, $extensao = null) { $a = Array(); $b = opendir($pasta); if($b) { while (($arquivo = readdir($b)) !== false) { $c = explode(".", $arquivo); if($c[count($c) - 1] == $extensao) array_push($a, $arquivo); } } return $a; } $a = carregaArquivos(".", "jpg"); for($i = 0; $i < 10; $i++){ echo "<img src = \"" . retornaAleatorio($a) . "\" width = \"$largura\" height = \"$altura\" /><br>\n"; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kantrum Postado Fevereiro 18, 2010 Autor Denunciar Share Postado Fevereiro 18, 2010 Ta dando erro nesse código acima se ta rand(0, todos ficam zero se coloca rand(5, ai ele sortei mas continua repetindo alguns banner sortudo que ganham mais de uma vez Notice: Undefined offset: 3 in C:\Arquivos de programas\EasyPHP6.0dev\www\bannersaulo.php on line 8Notice: Undefined offset: 4 in C:\Arquivos de programas\EasyPHP6.0dev\www\bannersaulo.php on line 8Notice: Undefined offset: 2 in C:\Arquivos de programas\EasyPHP6.0dev\www\bannersaulo.php on line 8Notice: Undefined offset: 4 in C:\Arquivos de programas\EasyPHP6.0dev\www\bannersaulo.php on line 8Notice: Undefined offset: 4 in C:\Arquivos de programas\EasyPHP6.0dev\www\bannersaulo.php on line 8Notice: Undefined offset: 2 in C:\Arquivos de programas\EasyPHP6.0dev\www\bannersaulo.php on line 8 espero que me ajudem grato pelo codigo e agradeço desde já se alguém tiver a soluçao xD Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Fevereiro 19, 2010 Denunciar Share Postado Fevereiro 19, 2010 o rand repete, não tem jeitoda uma olhada no shufflehttp://br2.php.net/manual/pt_BR/function.shuffle.phppode colocar os id em um array e usar ele para não repetirtalvez seja a solução para evitar repetição Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kantrum Postado Fevereiro 19, 2010 Autor Denunciar Share Postado Fevereiro 19, 2010 Analizem meu codigo e ver oque da pra fazer pra não repetir os banners sempre tem algumas imagens q vem repetidastentei adicionar o tal shuffle mas sei la nada funciona já fiz varios codigos de tudo que jeito o mais prox foi esse so que ele sorteia repetido algunsalguma luz ou um código que funcioneaté com banco de dados mas nem assim quero algo simplesou assim colocar um codigo nesse meu script que verifica a imagem e se for de mesmo nome ele pega outro ate ficarem todos diferentes se tiver 50 banner na pasta ele pega 15 diferentes so que aqui sai 2 ou 3 repetidos .<meta http-equiv="refresh" content="5" /> <?php $pasta = 'banners'; array($pasta); $array = $pasta #local onde ficarão as imagens para exibir $width = '127'; #largura do banner a ser exibido $height = '100'; #altura do banner if ($ponteiro = opendir($pasta)) { $n = 0; $o = 0; while (false !== ($arquivo = readdir($ponteiro))) { //if(filetype($pasta.'/'.$arquivo) != 'dir' && $file != 'Thumbs.db') { $n++; $o++; define($n."banner",$pasta.'/'.$arquivo); } } closedir($ponteiro); $banner1 = constant(rand(5,$o)."banner"); $banner2 = constant(rand(15,$n)."banner"); $banner3 = constant(rand(5,$o)."banner"); $banner4 = constant(rand(15,$n)."banner"); $banner5 = constant(rand(5,$o)."banner"); $banner6 = constant(rand(15,$n)."banner"); $banner7 = constant(rand(5,$o)."banner"); $banner8 = constant(rand(15,$n)."banner"); $banner9 = constant(rand(5,$o)."banner"); $banner10 = constant(rand(15,$n)."banner"); $banner11 = constant(rand(5,$o)."banner"); $banner12 = constant(rand(15,$n)."banner"); $banner13 = constant(rand(5,$o)."banner"); $banner14 = constant(rand(15,$n)."banner"); $banner15 = constant(rand(5,$o)."banner"); shuffle($array); } echo "<img src=\"$banner1\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner2\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner3\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner4\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner5\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner6\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner7\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner8\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner9\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner10\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner11\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner12\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner13\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner14\" width=\"$width\" height=\"$height\" /></br>"; echo "<img src=\"$banner15\" width=\"$width\" height=\"$height\" /></br>"; ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Kantrum
Olá pessoal Queria me me ajudasse numa parte do código olha só:
<?php
$pasta = 'banners';
$width = '640';
$height = '60';
if ($diretorio = opendir($pasta)) {
$n = 0;
while (false !== ($arquivo = readdir($diretorio))) {
//if(filetype($pasta.'/'.$arquivo) != 'dir' && $file != 'Thumbs.db') //não da bola
{
$n++;
define($n."banner",$pasta.'/'.$arquivo);
}
}
closedir($diretorio);
$banner = constant(rand(5,$n)."banner");
}
echo "<img src=\"$banner\" width=\"$width\" height=\"$height\" />";
echo "<img src=\"$banner\" width=\"$width\" height=\"$height\" />"; //pesssoal aki seria pra mostrar outra imagem
?>
é os eguinte o script funciona mas se eu colocar + de um banner vai aparecer todos iguais eu quero que ele puxe outro aleatório exemplo:
$banner1 = constant(rand(5,$n)."banner");
$banner2 = constant(rand(2,$n)."banner"); SÓ QUE OBVIO DA CRASH NA CONSTANT DO SEGUNDO ^^
}
echo "<img src=\"$banner1\" width=\"$width\" height=\"$height\" />";
echo "<img src=\"$banner2\" width=\"$width\" height=\"$height\" />";
tipo ele pega qualquer um não é programado pra pega A , B, C ele pode pegar B, C, A, C, B, C, A, C, B tanto faz so que quero que mostre 15 diferentes
Banner1 = sorteou o "C"
Banner2 = sorteou o "A"
SO QUE NO MEU CÓDIGO TA ASSIM:
Banner1 = sorteou o B
Banner2 = sorteou o B
atualiaza pagina
Banner1 = sorteou o A
Banner2 = sorteou o A
atualiza pagina
Banner1 = sorteou o C
Banner2 = sorteou o C
espero que me ajudem quero que sortei qualquer 1 mas cada banner diferente que ta na pasta
Editado por KantrumLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.