Leer los archivos de un directorio del servidor con PHP. (Salida XML).
Con este código generamos un documento XML con el listado de archivos de determinado directorio del servidor web. Lo único que hay que personalizar es la línea $dir=”ruta/de/la/carpeta/a/explorar”; con la ruta de la carpeta elegida en vuestra máquina.
<?php
header("Content-type: text/xml");
$dir="ruta/de/la/carpeta/a/explorar";
$dr=@opendir($dir);
if(!$dr){
echo "<error/>";
exit;
} else {
echo "<exploracion>";
// recorremos todos los elementos de la carpeta
while (($archivo = readdir($dr)) !== false) {
// comprobamos que sean archivos y no otras carpetas
if(filetype($dir . $archivo)!="dir"){
$tam=round(filesize($dir . $archivo)/1024,0);
echo "<archivo nombre='$archivo' tam='$tam'/>";
}
}
echo "</exploracion>";
closedir($dr);
}
?>
10 comentarios para “Leer los archivos de un directorio del servidor con PHP. (Salida XML).”
Deja tu comentario

Muchas gracias por compartir el código me ha sido muy útil. En verdad te lo agradezco. Saludos
como convertir una imagen a xml
Tengo una duda. Dice la descripción sobre la ruta de la carpeta es la ruta en mi máquina. Como debe escribirse la ruta si yo he subido las imágenes a un FTP?
Alejandro, puedes obtener la ruta de un directorio ejecutando este código desde el mismo directorio:
< ?php
echo getcwd();
?>
Buenas, me ha sido muy util tu código (soy diseñador), pero tengo una duda:
Al generar el xml, el listado me aparece desordenado, es decir, en vez de 001.jpg,002.jp,003.jps,etc,…
me aparece un listado con los archivos organizados de forma aleatoria, es decir, 004.jpg,001.jpg,007.jpg, etc,…
Que podria hacer?
Muchas gracias.
La ruta debe estar dada con “/” y no alreves “\” y ademas al final debe llevar la ultima “/”
Saludos
Muchisimas gracias me ah servido de mucha ayuda =)
para bydaface:
el readdir devuelve los archivos en el orden en que el S.O. los tiene guardados, para ordenarlos alfabeticamente intenta algo así:
$dir=”ruta/de/la/carpeta/a/explorar”;
$dr=@opendir($dir);
$i = 0;
$images = array();
while ($file = readdir($dr)) {
$images[$i] = $file;
$i = $i+1;
}
sort($images);
y ya con un for recorres el vector de images y generas las etiquetas xml con el nombre, el tamaño y lo que quieras.
Saludos!
Alejandro para que no te compliques con la ruta seria mas facil poner en la variable $dir:
$dir=”getcwd() . ruta/a/explorar(servidor)”
para que no te enredes colocando toda la ruta hasta la raiz www
hola , alguien podria ayudarme, intento hacer un reproductor web, aun soy pricipiante, pero me perdi por qeu uso la version flash cs4 de adobe, o alguien podria facilitarme un codigo mas simple, por que necesito entregar un trabajo en la prepa, y quiero colocar un reproductor web para mp3
saludos mi correo es dar-kalet@hotmail.com
gracias