Modificaciones adicionales
Somos ahora capaces de escanear ficheros y directorios y de generar una bonita representación arbórea a partir de los datos obtenidos. Sin embargo, nuestras posibilidades son aún mayores. Supongamos, por ejemplo, que queremos mostrar el tamaño de cada archivo. Podemos lograrlo fácilmente gracias a las siguientes líneas:
$fsize = @filesize($sfiles[$y])/1024;
printf(" (%.2f kB)", $fsize);
En la primera tomamos el tamaño del archivo en bytes y lo convertimos a kilobytes. El símbolo @ al principio de la función hace que ésta no genere ningún comunicado de error, lo que resulta útil cuando es posible examinar el contenido de un catálogo, pero no se tienen los privilegios necesarios para leer (y revisar el tamaño de) los archivos que en él se encuentran; en estos casos cualquier comunicado de error podría arruinar la apariencia de nuestros datos en pantalla.
La segunda línea será fácilmente reconocible para aquellos que ya han programado en C: printf() imprime una cadena alfanumérica formateada; el símbolo %.2f indica a la función que su segundo parámetro debe ser presentado como un número decimal con dos cifras después de la coma. Este número ($fsize) expresa, por supuesto, el tamaño del archivo en kilobytes.
Por el momento todo va bien, pero ¿y si alguna vez queremos que el script no muestre ningún tamaño? Coloquemos algo como $showsize = 1; al principio del script (donde se lo pueda después encontrar rápidamente) y añadamos la condición
if($showsize)
{
...
}
Ahora, cada vez que pongamos $showsize a 1 el script mostrará el tamaño de los archivos y cuando lo pongamos a 0 no lo hará.
Para acelerar la visualización de los tamaños podemos hacer uso de la base de datos.
Puede ser también útil mostrar al visitante la dirección URL en la parte superior del mapa del sitio web. Para hacerlo necesitaremos el siguiente fragmento de código:
echo "<img align=absmiddle
src=server.gif>
http://$SERVER_NAME";
echo "$prefix/";
Primero es mostrado el nombre del servidor tomado de la consulta del navegador, y después la ruta de acceso al archivo. Si esta última no aparece será necesario revisar la configuración del servidor Apache.