24 de abril de 2010
Precisei fazer isso quando estava renomeando os arquivos feitos via upload no Zend Framework para o id do banco de dados, o algoritmo é simples e não tem nenhum segredo:
<?php
header ('Content-type: text/html; charset=utf-8');
class Utils
{
/**
* Retorna a extensão do arquivo indepedente do nome.
*
* @param $file
* @author Wellington Rocha
* @return $extensao
*/
public static function getExtension ($file)
{
if (!preg_match("/(\.(jpg|jpeg|png|gif|pdf))$/", $file, $match))
throw new Exception('Não foi possível identificar o formato do seu arquivo !');
return $match[0];
}
}
$file = 'uploads/fotos/--0090wellington.na-balada.png';
$extension = Utils::getExtension($file);
echo "O Formato do arquivo '{$file}' é = ". $extension;
echo '<pre>';
var_dump(pathinfo($file));
echo '</pre>';
Fiz um post porque um amigo Flasheiro estava com o mesmo problema, daí eu passei essa lógica para ele e resolveu
* Corrigi o algoritmo conforme a dica do @Lucas Fernando Amorim
* Não me escutem e usem a função nativa do php, pathinfo. Obrigado Alexandre.Gaigalas.Net
Tags: PHP
Parabéns, mas o código está um pouco redundante.
http://codepad.org/d3AR2kKv
Perdão, segue correção: http://codepad.org/YU6kh7Bw
Rapaz, tem uma função nativa pra isso no PHP:
http://codepad.org/VDdncPvf
@Alexandre:
Acabei de testar o path info e funcionou numa boa, com certeza é a melhor solução =D.
Valeu !
@Lucas Fernando Amorim:
Ficou menos redundante, mudei o algoritmo para a sua correção.