MAPA WEB
$stime = gettimeofday();
$descDirectorio="desc.txt"; /*Descripción de los directorios*/
/* Preliminares, deberán der cambiados en función de la estructura del servidor */
$preMalos=explode("/", getcwd());
array_pop($preMalos);
array_pop($preMalos);
$dirMalos=join("/", $preMalos);
$root = "..";
$pre = explode("/", $REQUEST_URI);
array_pop($pre);
array_pop($pre);
$prefix = join("/", $pre);
$root .= "/";
/* Display server name and directory */
function lee_extension($nombre) {
/* Esta función devuelve la extendión de un archivo */
$array = explode(".", $nombre);
$retval = strtolower(array_pop($array));
return $retval;
}
function list_dir($chdir) {
/* FUnción principal encargad de listar un directorio */
global $root, $descDirectorio,$dirMalos, $prefix, $PHP_SELF, $SERVER_NAME, $showsize, $display, $excludedir, $excludefile;
unset($sdirs);
unset($sfiles);
chdir($chdir);
$self = basename($PHP_SELF);
/* Abrimos el directorio actual */
$handle = opendir('.');
/* Leemos el directorio. Si un item es un directorio, lo almacenamos
en $sdirs, si es un fichero de los no exlcuidos lo almacenamos en $sfiles */
while ($file = readdir($handle))
{
if(is_dir($file) && $file != "." && $file != ".." && !in_array($file, $excludedir))
{
/* Si es un directorio vemos si existe el archivo desc.txt que lo describe
si es así lo tenemos en cuenta, si no pasamos de él*/
chdir($file);
if (file_exists($descDirectorio)){
/*Leemos el archivo de Descripción*/
$fp = fopen($descDirectorio,"r");
$linea= fgets($fp,1024);
$descDir[]=$linea;
$sdirs[] = $file;
}
chdir("..");
}
elseif(is_file($file) && $file != "$self" && in_array(lee_extension($file), $display)
&& !in_array($file, $excludefile))
{ $sfiles[] = $file; }
}
/* count the slashes to determine how deep we're in the directory tree and how many
* nice bars we need to add */
$dir = getcwd();
$dir1 = str_replace($dirMalos, "", $dir."/");
$count = substr_count($dir1, "/") + substr_count($dir1, "\\");
/* Empezamos listando los ficheros del directorio*/
chdir($chdir);
/*Mostramos los archivos del directorio que no son directorios */
if(is_array($sfiles)) {
sort($sfiles);
reset($sfiles);
$sizeof = sizeof($sfiles);
for($y=0; $y<$sizeof; $y++) {
$etiqueta=strip_tags(join("",file($sfiles[$y])));
$trozo=explode("\n",$etiqueta);
foreach ($trozo as $titulo){
if (trim($titulo)!=""){
echo "
$titulo\n";
continue 2;
}/*Fin del if*/
}/*Fin del foreach*/
}/* Fin del for*/
}/*FIn del if*/
/*Ahora mostramos los directorios del directorio siempre que no estén vacíos*/
if(is_array($sdirs)) {
/*
sort($sdirs);
reset($sdirs);
*/
for($y=0; $y
$descDir[$y]\n";
echo "";
list_dir($dir."/".$sdirs[$y]);
}/*Fin del for*/
}/*Fin del if*/
echo "
\n";
}
echo ""; /*Damos comienzo la lista*/
list_dir("$root");
echo "
";
/* How long did that need..? */
$ftime = gettimeofday();
$time = round(($ftime[sec] + $ftime[usec] / 1000000) - ($stime[sec] + $stime[usec] / 1000000), 5);
echo "Esta página fue generada en $time segundos.\n";
?>