Listar archivos de directorio web

Necesito publicar un "index.htm" que contenga un código que me liste los archivos que están en el mismo directorio donde se encuentra dicho archivo index.htm.
Algo como esto:
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/examples/
¿Cómo puedo hacer esto?
Debo decirles que no soy programador de páginas web, así que de antemano les agradezco que me expliquen como a un novato en computación.
Respuesta
1
Pues en realidad es muy sencillo, claro que para hacer eso necesitarías tener el control administrativo del equipo donde está el servidor web. Te lo explicaré para el caso del servidor apache.
Entras a la configuración del servidor, generalmente el archivo httpd.conf ubicado en el directorio conf. En este archivo busca la linea <directory xxxx> donde xxx es el directorio del servidor donde deseas listar los archivos. Dentro de los tags
<directory xxx> y </directory> debería haber una linea que dice options yyyyy
al final de esa linea le agregas la palabra DirectoryIndex
si no la hay la creas así:
Options DirectoryIndex
En otros servidores la configuración es parecida.
Si es el caso que estas en algún hosting en el cual no tienes acceso al servidor, debes hablar con el administrador de la red para que él realize la configuración que necesitas.

2 respuestas más de otros expertos

Respuesta
1
Antes que nada comento que es la primera vez que contesto una pregunta en este foro así que espero poder contestarte correctamente.
Para sacar los ficheros y directorios contenido dentro de una carpeta se puede usar el siguiente código php:
<?php
// abrir directorio
$dir = opendir(".");
// get each entry
while($name = readdir($dir)){
$files[] = $name;
}
// cerrar directorio
closedir($dir);
// ordenarles
sort($files);
// contamos elementos en array
$tot_files = count($files);
// creamos listado de ficheros y directorios
$list_files='';
for($index=0; $index < $tot_files; ++$index) {
if (substr($files[$index],0,1) != "."){
// no mostramo ficheros "escondidos"
$list_files.='
<tr>
<td><a href="'.$files[$index].'">'.$files[$index].'</a></td>
<td>'.filetype($files[$index]).'</td>
<td>'.filesize($files[$index]).'</td>
<td>'.date ("d-m-Y H:i:s", filemtime($files[$index])).'</td>
</tr>
';
}
}
// mostrar tabla con listado de ficheros
echo '
<table border=1>
<tr>
<th>Nombre</th>
<th>Tipo</th>
<th>Tamaño</th>
<th>Fecha Mod</th>
</tr>
'.$list_files.'
</table>
';
?>
Espero que con mis comentarios dentro del código (lineas que comienzan con // ) se puede entender el proceso.
Comento que, a no ser que tu servidor esta preperado para leer ficheros html como si fueran php, tendrás que nombrar to "index.html" como "index.php".
Bueno.
Respuesta
1
Depende de la versión que tengas de PHP, puedes usar la función scandir que te devuelve directamente el contenido del directorio en una matriz.
Pero claro, has de averiguar si dispones de PHP 5.
Ejecuta:
phpinfo();
Para saberlo.
Quedé lelo. Me hablas en chino. Pensé que sería más sencillo, simplemente algo como añadir un código php dentro del html.
No es chino, es PHP. Actualmente hay dos versiones de PHP, la 4 y la 5. Ésta última tiene algunas funciones más.
Antes de nada, te diré que para que el PHP se ejecute, el servidor HTTP debe disponer del módulo de PHP o sino no lo entenderá.
Crea un fichero index.php y pon dentro lo siguiente:
<?php
phpinfo();
$a = "Hola";
echo $a . " mundo";
?>
Si el servidor dispone de PHP, te saldrá un montón de información sobre él, entre otras cosas la versión de PHP que usa. Si no sale esa información es que no hay PHP en el servidor o está restringido. Si se ve "Hola mundo" es que hay PHP.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas