Se stai ricevendo un elenco di directory di nuovo che è pieno di link in un documento XHTML corretto è possibile utilizzare DOMDocument
, e il codice come il seguente per tornare un elenco di file:
$doc = new DOMDocument();
$doc->preserveWhitespace = false;
$doc->load('directorylisting.html');
$files = $doc->getElementsByTagName('a');
$files
è ora un elenco di DOMElement
s che si possono scorrere e ottenere l'attributo href
per ottenere un percorso completo per i file nella lista.
Si noti che questo approccio richiede un elenco di directory formato correttamente restituito dal server. Non è possibile, ad esempio, effettuare una richiesta su stackoverflow.com
e ottenere un elenco di directory dei file.
Se questo non funziona (HTML malformato forse) si potrebbe usare espressioni regolari (ad esempio preg_match_all
.) Per trovare <a
tag, come tali:
preg_match_all('@<a href\="([a-zA-Z\.\-\_\/ ]*)">(.*)</a>@', file_get_contents('http://www.ibiblio.org/pub/'), $files);
var_dump($files);
$files
elementi sarebbero ancora essere abbinati, solo un insieme di array.
UPDATE, ho provato con il vostro URL (http://www.ibiblio.org/pub/
) e funziona bene (il metodo preg_match_all
).
fonte
2011-07-21 09:11:02
Penso che voglia analizzare l'elenco di directory di Apache (Opzioni + indici) – genesis
Voglio dire elenco di directory .. una directory contenente file (ad esempio cartella di immagini) su dominio esterno e ho bisogno di leggere le immagini sul mio script, ecc. –