$valor){
switch ($campo) {
//Obtenemos una ruta, carpeta o archivo
case "una-ruta":
$ruta = htmlspecialchars($valor, ENT_QUOTES);
if (get_magic_quotes_gpc() == 1) $ruta = stripslashes($ruta);
break;
//Vemos la codificación
case "una-codificacion":
$codificacion = htmlspecialchars($valor, ENT_QUOTES);
if (get_magic_quotes_gpc() == 1) $codificacion = stripslashes($codificacion);
break;
}
}
}
//Si la ruta es vacía, pone la del presente script
if ($ruta == "") $ruta = dirname(__FILE__)."/";
//Esta variable contendrá la lista de nodos (carpetas y archivos)
$presenta_nodos = "";
//Esta variable es para el contenido del archivo
$presenta_archivo = "";
//Si la ruta es una carpeta, la exploramos. Si es un archivo
//sacamos también el contenido del archivo.
if (is_dir($ruta)){//ES UNA CARPETA
//Con realpath convertimos los /../ y /./ en la ruta real
$ruta = realpath($ruta)."/";
//exploramos los nodos de la carpeta
$presenta_nodos = explora_ruta($ruta);
} else {//ES UN ARCHIVO
$ruta = realpath($ruta);
//Sacamos también los nodos de la carpeta
$presenta_nodos = explora_ruta(dirname($ruta)."/");
//Y sacamos el contenido del archivo
$presenta_archivo = "
CONTENIDO DEL ARCHIVO: ".
$ruta."
".
explora_archivo($ruta, $codificacion).
"";
}
//Función para explorar los nodos de una carpeta
//El signo @ hace que no se muestren los errores de restricción cuando
//por ejemplo open_basedir restringue el acceso a algún sitio
function explora_ruta($ruta){
//En esta cadena haremos una lista de nodos
$cadena = "";
//Para agregar una barra al final si es una carpeta
$barra = "";
//Este es el manejador del explorador
$manejador = @dir($ruta);
while ($recurso = $manejador->read()){
//El recurso sera un archivo o una carpeta
$nombre = "$ruta$recurso";
if (@is_dir($nombre)) {//ES UNA CARPETA
//Agregamos la barra al final
$barra = "/";
$cadena .= "CARPETA: ";
} else {//ES UN ARCHIVO
//No agregamos barra
$barra = "";
$cadena .= "ARCHIVO: ";
}
//Vemos si el recurso existe y se puede leer
if (@is_readable($nombre)){
$cadena .= "$recurso$barra";
} else {
$cadena .= "$recurso$barra";
}
$cadena .= "safe_mode ";
if (ini_get("safe_mode")){
$opciones .= ": activado";
} else {
$opciones .= ": desactivado";
}
$opciones .= "".
"open_basedir: ".ini_get("open_basedir")."getmyuid(): ".getmyuid()."getmygid(): ".getmygid()."