Si usted está recibiendo un listado del directorio de espalda que está lleno de enlaces en un documento XHTML adecuada puede utilizar DOMDocument
y código como el siguiente para obtener una lista de los archivos:
$doc = new DOMDocument();
$doc->preserveWhitespace = false;
$doc->load('directorylisting.html');
$files = $doc->getElementsByTagName('a');
$files
es ahora una lista de DOMElement
s que se puede recorrer y obtener el atributo href
para obtener una ruta completa de los archivos de la listado.
Tenga en cuenta que este enfoque requiere una lista de directorios formada correctamente devuelta por el servidor. No puede, por ejemplo, hacer una solicitud en stackoverflow.com
y obtener una lista de directorios de los archivos.
Si esto no funciona (HTML quizá mal formado) se puede utilizar expresiones regulares (por ejemplo preg_match_all
.) Para encontrar <a
etiquetas, como tales:
preg_match_all('@<a href\="([a-zA-Z\.\-\_\/ ]*)">(.*)</a>@', file_get_contents('http://www.ibiblio.org/pub/'), $files);
var_dump($files);
$files
elementos seguirían estando emparejados, sólo un conjunto de matrices.
ACTUALIZACIÓN, he probado con su URL (http://www.ibiblio.org/pub/
) y funciona bien (el método preg_match_all
).
Creo que quiere analizar el listado de Apache (Opciones + Índices) – genesis
Me refiero a la lista de directorios ... un directorio que contiene archivos (por ejemplo, carpeta de imágenes) en un dominio externo y necesito leer las imágenes en mi script, etc. –