Colocado por Marcelo Sabadini em
14/11/2008
CakePhp – Procurar/listar arquivos em uma pasta
Ola galera, esta semana precisei procurar arquivos PNG em uma pasta. Como utilizo o CakePhp neste projeto, utilizei a lib Folder(clique e veja a documentação da classe).
É super simples, mas vale a dica.
No controlador faça o seguinte:
-
<?
-
class ControladorController extends AppController {
-
-
function minhaFuncao(){
-
-
# ===— Instancie a classe e passe o path como parâmetro
-
$folder = new Folder(‘img/home/’);
-
# ===— Acesse o método find() da classe Folder e passe uma regex para procurar os arquivos
-
$arquivos = $folder->find(".*\.png");
-
-
# ===— Sete a variável para usar da forma que quiser na view
-
$this->set(‘arquivos’, $arquivos);
-
-
}
-
-
}
-
?>
Como você pode perceber, o método find() ‘espera’ uma Expressão Regular como parâmetro. Por padrão, o parâmetro é ‘.*’, ou seja, qualquer caractere em qualquer quantidade.
No meu caso, eu utilizei a seguinte REGEX: ‘.*\.png’. Significa dizer que quero nomes de arquivos que comecem com qualquer coisa e com qualquer quantidade de caracteres(.*)e que terminem com .png(\.png). Então ele vai casar isso: asdfasdfsfsfa.png ou isso: teste123.png ou isso: _teste_.png ou isso: outro teste.png. Ele vai ignorar qualquer arquivo que não termine com ‘.png’.
Se você utilizar apenas $folder->find();, todos os arquivos da pasta serão listados.
Este método retorna um array com os arquivos encontrados.
Espero ter ajudado, qualquer coisa é só postar.


(9 votos, média: 4.56 de 5)