nombre --- (donde se recogen los nombres bien del archivo bien del subdirectorio)
tamaño --- (donde recojo el tamaño del archivo o el tamaño global del subdirectorio)
fecha --- (donde se recoge la fecha en la que fue añadido el archivo al directorio o bien la fecha de creación del subdirectorio)
este listado lo muestra sin ningún tipo de orden. tal cual. yo lo que quiero es que, en el título de cada uno de esos campos, es decir, 'nombre', 'tamaño' y 'fecha', al pinchar en ellos, los resultados se muestren ordenados de menor a mayor según el campo en el que pinche.
he estado indagando y he tratado de obtenerlo con la función sort, pero no hay manera.
cómo obtengo el contenido del directorio y de cada campo. a través de este código:
leo lo que hay en el directorio (tanto archivos como subdirectorios):
Código PHP:
$path = "directorio";
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$fName = $file;
$file = $path.'/'.$file;
así, en el campo 'nombre', el código que utilizo para obtener los nombres de los ficheros o subdirectorios es el siguiente:
Código PHP:
if(is_file($file))////si es un fichero
{
print"<a href='".$file."'>".$val."</a>";
}
if(is_dir($file))////si es un directorio
{
print "<a href='index.php?mod=10&path=$file'>$val</a>";
}
Código PHP:
////tamaño si es un archivo//////////
if(is_file($file))
{
$tama = ( filesize( "$file" ) );
// formateo los numeros a dos decimales
if ( $tama >= 1073741824 )
{
$tama = round( $tama / 1073741824 * 100 ) / 100 . " " . "Gb";
}
else if ( $tama >= 1048576 )
{
$tama = round( $tama / 1048576 * 100 ) / 100 . " " . "Mb";
}
else if ( $tama >= 1024 )
{
$tama = round( $tama / 1024 * 100 ) / 100 . " " . "Kb";
}
else
{
$tama = $tama . " " . "b";
}
echo ("$tama");
}
////final tamaño si es un archivo/////////
else
////tamaño si es un directorio//////////////
if(is_dir($file))
{
$tama = ( dirsize( "$file" ) );
// formateo los numeros a dos decimales
if ( $tama >= 1073741824 )
{
$tama = round( $tama / 1073741824 * 100 ) / 100 . " " . "Gb";
}
else if ( $tama >= 1048576 )
{
$tama = round( $tama / 1048576 * 100 ) / 100 . " " . "Mb";
}
else if ( $tama >= 1024 )
{
$tama = round( $tama / 1024 * 100 ) / 100 . " " . "Kb";
}
else
{
$tama = $tama . " " . "b";
}
echo ("$tama"); }
Código PHP:
echo date("j.n.Y H:i:s",filemtime($file))
me ayudáis?