Todas as vezes em que precisei listar arquivos de um diretório – em PHP usava as funções opendir() e readdir(). Há muito tempo não precisava fazer isso, e hoje me deparei com essa necessidade.
Fui procurar a documentação e encontrei uma outra função que nunca tinha visto, a glob(). Só é necessário passar o caminho fisíco do diretório e ele retorna um array de entradas com arquivos e diretórios.
O uso é simples:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Listando arquivos</title>
</head>
<body>
<ul>
<?php
//define o caminho do diretório
$dir = "/Applications/MAMP/htdocs/exemplos/files/";
//listar arquivos
$files = glob($dir."/*") or die("Erro ao acessar " . $dir);
//permorre a lista
foreach($files as $file) {
if (!is_dir($file)){
?>
<li><a href="<?php echo $file;?>" title="<?php echo $file;?>"><?php echo $file;?></a></li>
<?php
}
}
?>
</ul>
</body>
</html>