Descobrindo a função explode() do PHP - Hugo Ferreira - Desenvolvimento de Sites | Softwares | Sistemas Web | Sistemas Desktop | Freelancer | Joomla | Soluções em TI | Indaiatuba SP

Descobrindo a função explode() do PHP

Blog do Hugo Ferreira - PHPConstantemente em projetos web, trabalha-se muito com "Upload de Imagens".
Em um de meus primeiros projetos web, uma das funções do sistema era o Gerenciamento de Imagens.


Neste banco de imagens, ao fazer o upload da imagem, o script responsável por esta ação, antes de salvar a imagem no servidor e gravar seus dados no banco, tinha que trabalhar alguns dados da imagem, como nome, tamanho, largura e altura.

Para trabalhar o nome da imagem, a função basicamente era:
- substituir os caracteres especiais da imagem por caracteres comuns. (Ex.: ç por c, À por a, ü por u, espaço por hífen, etc)...

No banco de dados, eu gravava a url da imagem à partir de um determinado diretório onde elas eram gravadas, mas já com o nome substituído, e consequentemente a extensão da mesma.

Mas quando cheguei neste ponto percebí que, antes de gravar o registro no banco, tinha que descobrir qual era a extensão da imagem.
Poderia ser jpeg, gif, tiff, png, jpg, bmp...

À princípio, a lógica que usei foi a seguinte:
- Conto quantas letras tem o nome da imagem (que no caso nome era nome + extensão)
- Verifico, de trás pra frente no nome da imagem, se tem o caractere ".", e se sim, dalí em diante seria a extensão da imagem, se não, do 5º carectere em diante seria a extensão da imagem.



O script ficou assim:


$qtdeLetras = strlen($nomeImagem) - 4;  
if (substr($nomeImagem,$qtdeLetras,1) == "."){
  $extensao = substr($nomeImagem,$qtdeLetras +1,4);
}  
else {
  $extensao = substr($nomeImagem,$qtdeLetras,5);
}



Testes feitos, tudo OK, pronto!



Mas, não me dei por satisfeito, e fui procurar na documentação do PHP se tinha alguma função que facilitaria o meu trabalho.
Fiz mais algumas pesquisas e conhecí o tal do Explode().

A finalidade desta função é dividir uma string em strings baseando-se em um parâmetro especificado.
(Para saber mais sobre a função explode(), veja este ótimo artigo de Júlio César Martini no Imasters, ou acesse a documentação do PHP)

Depois vi que, se usasse esta função em conjunto com a função end, onde tal funçaõ iria me retornar algum valor à partir do final da string, poderia substituir todo o trabalho de antes por uma linha... e o resultado foi:


$extensao = strtolower(end(explode('.', $nomeImagem)));



Obs.: A função strtolower() é só pra transformar os caracteres de retorno em minúsculo.


Pronto!
Tenho certeza de que esta função, em conjunto com outras, pode facilitar e muito nosso trabalho em certas ocasiões.


Bom, até a próxima.
Falou...

Adicionar comentário


Security code
Atualizar código

Confira abaixo todos os artigos postados por Hugo Ferreira


Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Sobre Hugo Ferreira

Técnico em Sistemas de Informação, Web Developer e cursando Faculdade de Tecnologia em Banco de Dados, atuo no Desenvolvimento de Sites, Sistemas Web e Desktop desde 2008.
Dentre as tecnologias que trabalho, estão PHP, Java, jQuery, Ajax, Joomla, MySQL, PostgreSQL, Design Patterns, Adobe CS3, Corel, XHTML, CSS e Padrões Web.

Para mais informações sobre desenvolvimentos web e desktop, leia meus artigos, conheça as soluções que ofereço ou entre em contato.

Últimos artigos publicados


Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Warning: Creating default object from empty value in /home/hcferreira/www/modules/mod_latestnews/helper.php on line 109

Entre em contato


Hugo Ferreira - Desenvolvimentos, Soluções e Negócios Web e Desktop
© 2010 - 2017 - Todos os direitos reservados
by Nano Incub