LOGIN:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Terça-feira, 24/08/2004 - 14:35 - Por Júlio César Martini
Seções relacionadas:

Sistema de imagens - Parte 02

Fala galera! Dando continuidade ao nosso sistema de imagens, essa semana estarei apresentando algumas melhorias no código da semana passada, seguindo as dicas passadas pelo nosso amigo Cristiano Andrade Franco que postou seu comentário nessa coluna.

Nesse artigo melhorei a parte que faz a verificação do tipo de arquivo. No nosso caso, imagens do tipo gif, jpg e png e pra isso configurei o PHP para trabalhar com o módulo Mime Magic que nada mais é que uma extensão derivada do Apache.

Instalação do Módulo Mime Magic

Segue abaixo os detalhes para configuração do módulo. Maiores detalhes consultar o www.php.net.

Aqui na minha máquina foi configurado da seguinte forma:

- Windows XP Professional
- PHP 4.3.7
- Apache 1.3.29

01. Editar o arquivo php.ini e tirar o ponto e vírgula da seguinte linha (extension=php_mime_magic.dll).

02. Adicionar ao final do arquivo php.ini:

;MIME
mime_magic.magicfile ="DIRETORIO ONDE ESTÁ O PHP/magic.mime"

03. Crie um arquivo index.php com o seguinte comando:

<?
phpinfo();
?>

04. Execute o script index.php no browser e veja se a extensão foi carregada com êxito.

Segue abaixo, o script da semana passada usando a extensão Mime Magic:

<?
//FUNÇÃO QUE RETORNA AS IMAGENS DE UM DIRETÓRIO

function RetImagens($dir) {
  //ABRE O DIRETÓRIO
  $aberto = opendir($dir);

  //LÊ O DIRETÓRIO
  while($arq = readdir($aberto)) {
    //VERIFICA SE É DIRETÓRIO(.) OU SUBDIRETÓRIO
    if( ($arq <> ".") AND ($arq <> "..") ) {
     //PATH COMPLETO DO ARQUIVO
     $completo = $dir.$arq;
     //TIPO MIME DO ARQUIVO
     $tipo = mime_content_type($completo);

     //VERIFICA OS ARQUIVOS QUE SÃO IMAGENS
     if( ($tipo == "image/gif") OR
         ($tipo == "image/jpeg") ) {
         $imagens[] = $arq;

     }//FECHA IF (VERIFICA TIPO DE ARQUIVO)
   }//FECHA IF(DIRETÓRIO)
 } //FECHA WHILE

 //RETORNA AS IMAGENS
 return ($imagens ? $imagens : 0);
}//FECHA FUNCTION

//DIRETÓRIO A SER PESQUISADO
$dir = "c:\\pagina\\imasters\\103\\imagens\\";

//EXECUTA A FUNÇÃO QUE VAI VARRER O DIR
$imagens = RetImagens($dir);

//TÍTULO
echo "<h2>Imagem contidas no diretório:".$dir."</h2>";

if($imagens) {
 //ORDENA AS IMAGENS SELECIONADAS
 sort($imagens);

 //EXIBE AS IMAGENS SELECIONADAS
 foreach($imagens as $valor) {
  echo "<img src="".$dir.$valor."">";

 }//FECHA FOREACH
}//FECHA IF
else {
 echo "Não retornou nenhuma imagem.";
}

?>

Analisando o script:

Linha 42 - Especificamos o diretório a ser varrido.
Linha 45
- Chamamos a função RetImagens que vai nos retornar todas as imagens contidas no diretório em um array.
Linha 51
- Verificamos se retornou alguma imagem depois da varredura no diretório.
Linha 53
- Ordenamos as imagens.
Linha 56
- Exibimos as imagens contidas no array.

Linha 15 - Abrimos o diretório informado.
Linha 18
- Lemos os arquivos do diretório especificado.
Linha 20
- Verificamos se é diretório (.) ou subdidretório(..)
Linha 24
- Usando a função mime_content_type() retornamos o tipo do arquivo.
Linha 27
- Verifico as extensões que são permitidas, no nosso caso, estou liberando apenas as imagens gif e jpg. Se vocês quiserem podem adicionar outras extensões como bmp e png. Se for gif ou jpeg adicionou no array imagens[].
Linha 35
- Feito toda a varredura retorno o resultado da função.

Resultado:

Executando o script 103.php teremos como resultado as imagens contidas no diretório:

Se o script não encontrar nenhuma imagem:

Para baixar o script, clique no link abaixo.

DOWNLOAD

Clique AQUI e faça o download do script.

Semana que vem tem mais. Espero que vocês tenham gostado :-)

Não deixe de nos enviar críticas ou sugestões para o próximo assunto, afinal a coluna é de vocês.

Boa semana a todos! Até mais.

Todos os artigos de Júlio César Martini

11 comentários publicados

  • 1. Paginação

    Quarta-feira, 25/08/2004, por Wellington

    Achei ótimo esse artigo, mas teria como continuar na versão 3 com paginação ?

    Responder comentário
  • 2. Paginação

    Quarta-feira, 25/08/2004, por Wellington

    Muito bom o artigo, mas queria ver a versão 3 com uma paginação, tipo, listando 50 as imagens dai ele faz 10 linhas sendo 5 colunas. Como se fosse um album de fotos, mas com paginação. do tipo 1 | 2 | 3 | 4

    Responder comentário
  • 3. Phint Screen

    Domingo, 29/08/2004, por angelica yuri kobayashi

    Olá Julio Martini, á muito tempo venho acompanhando suas colunas... E aproveitando que agora você está escrevendo sobre imagens & php, eu gostaria de saber se é possivel dar um print screen da tela pelo php e salvar a imagem, no formato jpg por exemplo..

    Responder comentário
  • 4. Arquivos

    Domingo, 29/08/2004, por Patrick

    Como esse script poderia ser desenvolvido para Redimensiomento de Arquivos:

    Suponhamos que eu não queira ficar criando links e links de diversos arquivos para download.

    quando eu abrisse a página http://127.0.0.1/download.php listasse todos os arquivos que tenho nesse diretório
    e em subdiretórios sendo eles .exe . zip .rar

    Responder comentário
  • 5. Fabianosousa2003

    Terça-feira, 31/08/2004, por Wellington

    Nada haver seu comentário, pois olha os títulos Sistema de imagens - Parte 02, ele está trabalhando com imagem. Acho que outro comentário seria melhor enviar e-mail.

    Responder comentário
  • 6. Paginação

    Terça-feira, 31/08/2004, por Fabricia Ribeiro

    Poderia mostrar como fazer paginação na foto de exibição?

    Ex: &lt;&lt; anterior - próxima &gt;&gt;

    Responder comentário
  • 7. Paginação

    Quinta-feira, 02/09/2004, por Wellington

    Não, tem que ser paginação do tipo
    1 | 2 | 3 | 4 | 5

    Responder comentário
  • 8. Paginação

    Sexta-feira, 03/09/2004, por Fabricia Ribeiro

    Essa exibição com números serve nos thumbs, eu falei na foto de exibição, sacou?

    Responder comentário
  • 9. duvida

    Segunda-feira, 06/02/2006, por espanka

    ola amigo fiz seu primieiro SCRIPT mas o segundo nao esta funcionando nao tem anda errado, copiei o arquivo magic pro final da lista do php.ini e tudo mas , so que nao encontra nenhuma foto no diretorio que eu especifico, e na pasta PHP nao tem nenhum arquivo nem dll com mime.magic nao, vc pode me ajudar ?

    Responder comentário
  • 10. Imagens, PrintScreen com PHP

    Quarta-feira, 23/01/2008, por Marco Santos

    Tendo acessado seu http://imasters.uol.com.br/artigo/2486/php/sistema_de_imagens_-_parte_02/ e vendo sua experiencia pergunto se é possivel realizar um Print Screen cliquando em um botão e salvando automaticamente essa imagem no HD. Tudo isso em PHP. Pode me instruir (orientar) para que eu possa fazer isso. Obrigado.

    Responder comentário
  • 11. imagens não são exibidas

    Domingo, 03/08/2008, por Marconi César

    as imagens aparecem só aqueles quadradinhos com um X no meio como se elas não existissem, pode me dizer porque?

    Responder comentário

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

Júlio César Martini atualmente presta serviços de WebMaster/Programador para o UOL (http://www.uol.com.br), Graduado em Tecnólogo em Informática pela UNIFIAN - Faculdades Anhanguera e Pós-Graduado em Desenvolvimento de Software para Web pela UFSCAR. Foi o primeiro profissional a chegar à marca de 100 artigos publicados no iMasters e trabalha com PHP desde 2000. Site: http://www.juliocesarmartini.com


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.