No post de hoje vou compartilhar com todos que visitam o blog uma função php que criei para me auxiliar a recuperar e listar os arquivos de um determinado diretório em uma aplicação.
Imagine que dentro da pasta do seu projeto exista o diretório “imagens” e que você deseja recuperar o nome de todos os arquivos contidos nele.
Pois bem. Essa função será bastante útil.
Como a função pode aplicar um filtro para recuperar apenas arquivos de determinadas extensões, segue também uma função que verifica a extensao de um determinado arquivo. (OBS: Essa segunda função é executada dentro da primeira, portanto é necessário a implementação da mesma).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?php /** * Retorna os nomes dos arquivos de um diretório * @author Rafael Wendel Pinheiro * @param String $dir Caminho do diretório a ser utilizado * @return array */ function get_files_dir($dir, $tipos = null){ if(file_exists($dir)){ $dh = opendir($dir); while (false !== ($filename = readdir($dh))) { if($filename != '.' && $filename != '..'){ if(is_array($tipos)){ $extensao = get_extensao_file($filename); if(in_array($extensao, $tipos)){ $files[] = $filename; } } else{ $files[] = $filename; } } } if(is_array($files)){ sort($files); } return $files; } else{ return false; } } /** * Retorna a extensão de um arquivo * @author Rafael Wendel Pinheiro * @param String $nome Nome do arquivo a se capturar a extensão * @return resource Caminho onde foi salvo o arquivo, ou false em caso de erro */ function get_extensao_file($nome){ $verifica = explode('.', $nome); return $verifica[count($verifica) - 1]; } ?> |
A função get_files_dir recebe como parâmetro o caminho do diretório a ser “explorado” e um array(não obrigatório) com a extensão ou extensões que desejamos filtrar. O valor de retorno é um array com o nome(eu disse nome e não caminho) de todos os arquivos localizados.
Vamos a um exemplo:
1 2 3 4 5 6 7 8 9 | <?php $nomes = get_files_dir('arquivos'); if(is_array($nomes)){ foreach ($nomes as $nome){ echo $nome . "<br />"; } } ?> |
No exemplo acima eu capturo o nome de todos os arquivos do diretorio arquivos e os imprimo na tela. Agora imaginemos que queira pegar apenas as imagens jpg e png desse mesmo diretório.
1 2 3 4 5 6 7 8 9 10 | <?php $extensoes = array('jpg', 'png'); $nomes = get_files_dir('arquivos', $extensoes); if(is_array($nomes)){ foreach ($nomes as $nome){ echo $nome . "<br />"; } } ?> |
E pronto! Foi retornado apenas os arquivos que satisfazem as extensões.
Espero ter ajudado
Abs.
Siga-me no twitter: @rafaelwendel
Tem um erro ai, onde está
echo $nome . “”;
deve ser
echo “.$nome.”
Contribuindo.
Use este.
Tem um erro ai, onde está
echo $nome . “”;
deve ser
echo “$nome.”
Contribuindo.
Olá Robert,
Não está errado. É apenas uma outra forma de se chegar ao mesmo objetivo
Abs
Muito Bom, Muito otimo,
Queria saber se tem alguma forma de fazer essa mesma função em javascript?