Código PHP:
class cl_files
{
function verifyFileExtension($fileName, $extensions)
{
$fileName = strtolower($fileName);
for ($i = 0; $i < count($extensions); $i++) $extensions[$i] = strtolower($extensions[$i]);
for ($i = 0; $i < count($extensions); $i++)
{
if (!(strpos($fileName, '.') === FALSE))
{
$aux2 = explode('.', $fileName);
if ($aux2[count($aux2) - 1] == $extensions[$i]) return TRUE;
}
}
return FALSE;
}
function getFilesArray($path, $extensions = NULL)
{
$r = NULL;
$aux = scandir($path);
if ($aux == NULL) return $r;
for ($i = 0; $i< count($aux); $i++)
{
if ($aux[$i] != '.' && $aux[$i] != '')
if (!is_dir($aux[$i]))
{
$flag = true;
if ($extensions != NULL) $flag = $this->verifyFileExtension($aux[$i], $extensions);
if ($flag) $r[] = $aux[$i];
}
}
return $r;
}
function getLinksHTML($path, $extensions = NULL)
{
$r = '';
$aux = $this->getFilesArray($path, $extensions);
if ($aux == NULL) return $r;
$r = '<ul>';
for($i = 0; $i < count($aux); $i++)
$r .= '<li><a href="' . $path . $aux[$i] . '">' . $aux[$i] . '</a></li>';
$r .= '</ul>';
return $r;
}
}
$o = new cl_files();
$path = './files/';
$extensions = array('pdf', 'jpg');
echo $o->getLinksHTML($path, $extensions);
echo '<pre>' . print_r($o->getFilesArray($path, array('pdf', 'jpg')), true) . '</pre>';
Saludos,
PCID.
Comentarios adicionales:
- La carpeta "files"
al lado del archivo PHP con este código contiene los archivos a tomar en cuenta.
- Se descartan las carpetas que puedan existir en esa carpeta "files" del ejemplo.