La primera función que os dejo utiliza el readdir() y me listó bien el contenido del directorio en mi servidor de desarrollo, sin embargo cuando lo subí al hosting no me mostró los archivos ordenados alfabéticamente.
function getFiles($dir){
$files = array();
// Abrimos el directorio
if ($dh = opendir($dir)){
// Recorremos los ficheros del directorio
while (($file = readdir($dh))!==false){
// Comprobamos que sea un fichero y no un subdirectorio
if (is_file($dir.'/'.$file)){
$files[] = $file;
}
}
closedir($dh);
}
return $files;
}
Para mostrarlos de forma ordenada tuve que cambiar la función y usar scandir() que además es más simple ya que directamente nos devuelve un array con los archivos encontrados, ordenados ascendente o descendentemente, según queramos.
function getFiles($dir){
$files = array();
// Leemos el directorio ordenado ascendentemente
$tmp = scandir($dir);
// Recorremos los ficheros del directorio
foreach ($tmp as $file){
// Comprobamos que sea un fichero y no un subdirectorio
if (is_file($dir.'/'.$file)){
$files[] = $file;
}
}
return $files;
}
Gracias, yo tenía el mismo problema, su solución funciona. FSossaCo
ResponderEliminar