Ir para conteúdo
Fórum CódigoFonte.net
Entre para seguir isso  
Nahura

:(Ajuda com imagem aleatória...please:(

Recommended Posts

:unsure:

Gente, estou precisando de um código para imagem aleatória, e tem mais, tem que possibilitar, com o clique, o redirecionamento para ouro site...já procurei e não encontrei....sou nova aqui.

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, vou postar aqui um tutorial de imagem aleatória com PHP...

Lá vai:

Vô explica um poco passo a passo com os comentários para as pessoas que querem aprender como funciona:

Se caso esse nao serveir, pode baixar um codigo nesse endereço:

http://www.scriptbrasil.com.br/download/codigo/2758/

PHP

<?php 
function imagem_de_erro($msg, $bg = array(255, 0, 0), $txt = array(0, 0, 0)){
    $img = imagecreate(350, 120); //cria a imagem de erro
    $bg_col = imagecolorallocate($err_img, $bg[0], $bg[1], $bg[2]); //a cor de fundo... a primeira chamada pra essa função sempre coloca a cor de fundo.
    $txt_col = imagecolorallocate($err_img, $txt[0], $txt[1], $txt[2]); // agora define uma nova cor pra usa no texto
    imagestring($img, 1, 200, 100, $msg, $txt_col); //escreve o que foi enviado no parâmetro $msg na imagem
    imagejpeg($img); //envia a imagem pro navegador
    imagedestroy($img); //limpa a memória relacionada à imagem, como já foi pro navegador não é mais de nossa importância.
} //função pra quando deu algum erro qualquer.
/**
Nota: eu ainda não obtive nenhum erro (com ou sem propósito), então eu não sei até que ponto esta função funciona...
**/
$dir = @opendir("imagens"); //abre o diretório imagens. É lá onde você deve despejar suas imagens
if($dir == false){ //verifica se ocorreu um erro ao abrir o diretório imagens (por exemplo, não existe tal diretório...)
    imagem_de_erro("Ocorreu um erro na hora de abrir o diretório.");
} else{
    $imagens = array(); //eu prefire declarar minha array antes de usa-la...
    while(($arquivo = readdir($dir)) !== false){ //agora vai lendo o diretório e encontrando os arquivos e pegando somente as imagens
        $explode = explode(".", $arquivo); //separa o nome do tipo
        $formato = $explode[count($explode) - 1]; //pega somente o formato. Esse count ali é só no caso de vc querer nomear a imagem "minha.imagem.jpg" por algum motivo...
        if($formato == "jpg" || $formato == "jpeg" || $formato == "png" || $formato == "gif"){
            array_push($imagens, $arquivo); /*apenas se for de algum dos formatos desejados que a imagem é adicionada à nossa array de imagens. Se não for, não vai pra array e pronto. vc pode adicionar mais formatos ali adicionando mais '|| $formato == "ext"' ali, mas tem q ver lá no php.net se o formato é suportado*/
        }
    }
    if(count($imagens) < 1){ //se não tinha nenhuma imagem, mostra um erro.
        imagem_de_erro("Não existem imagens no diretório.");
    } else{
        $arr_shuffle = shuffle($imagens); //pra ajuda mais um pouco na aleatorização. Só com o rand tava muito repetitivo
        $aleatorio = rand(0, count($imagens) - 1); //pega um número qualquer pra ser usado na array
        $imagem_selecionada = $imagens[$aleatorio];
        $imagem_selecionada = "imagens/".$imagem_selecionada; //pega uma imagem qualquer da array imagens e combina com "imagens/" pra n da erro
        $formato_imagem = explode(".", $imagem_selecionada);
        $formato_imagem = $formato_imagem[count($formato_imagem) - 1]; //vc deve se lembrar do while logo acima...
        if($formato_imagem == "jpg" || $formato_imagem == "jpeg"){ //se a imagem for JPG, então cria a imagem de uma jpg, manda uma jpg pro navegador e limpa a memória
            $img = imagecreatefromjpeg($imagem_selecionada);
            imagejpeg($img);
            imagedestroy($img);
        } elseif($formato_imagem == "png"){ //mesma coisa, agora com PNG
            $img = imagecreatefrompng($imagem_selecionada);
            imagepng($img);
            imagedestroy($img);
        } elseif($formato_imagem == "gif"){ //sem muita utilidade, já que GIF animado só em sonhos msm... mas lá vai.
            $img = imagecreatefromgif($imagem_selecionada);
            imagegif($img);
            imagedestroy($img);
        } else{
            imagem_de_erro("Tipo de imagem desconhecido."); //n pergunte como uma imagem diferente foi parar aqui.
        }
    }
}
 ?>

Como usar: coloca assim no seu site: <img src="imagem.php" /> sendo imagem.php o link para o arquivo PHP onde vc colocou o script todo ali em cima. Se vc quiser usar em um fórum (onde tem essa coisa toda de não deixa passa imagem q n siga as regras (q são basicamente n pode ter interrogação (?) e tem q terminar com .jpg, .gif, etc...)), vc tem q criar uma pasta q termina com .jpg, .png ou .gif, e salvar esse script como index.php nessa pasta. Daí funciona da mesma maneira, mas vc pode chamar assim:

<img src="imagem.jpg" /> q vai aparece a imagem como no código acima. Claro q no caso fizemos essa gambiarra toda ai só pra pode usa num fórum, pois então:

CODE

IPB Image

Assim q ficaria.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
Entre para seguir isso  

×
×
  • Criar Novo...