Можно ли проанализировать список каталогов на внешней веб-странице?

Возможно ли проанализировать список каталогов веб-страницы, которая является внешней, если веб-страница доступна, и она отображает список файлов, когда я обращаюсь к нему. Я только хочу знать, можно ли динамически анализировать файлы в PHP и как? -Спасибо

Извините за непонятность. Я имею в виду список каталогов, такой как: http://www.ibiblio.org/pub/ (Index of / ..) и способность читать содержимое как массив или что-то легкое в управлении в моем скрипте

Вы можете использовать preg_match или DomDocument

Для вашего случая:

 $contents = file_get_contents("http://www.ibiblio.org/pub/"); preg_match_All("|href=[\"'](.*?)[\"']|", $contents, $hrefs); var_dump($hrefs); 

Если вы хотите взглянуть на рабочую демонстрацию .

Если вы возвращаете список каталогов, полный ссылок в соответствующем документе XHTML, вы можете использовать DOMDocument и код, например следующий, чтобы вернуть список файлов:

 $doc = new DOMDocument(); $doc->preserveWhitespace = false; $doc->load('directorylisting.html'); $files = $doc->getElementsByTagName('a'); 

$files теперь представляет собой список DOMElement s, с которым вы можете выполнить итерацию и получить атрибут href чтобы получить полный путь к файлам в списке.

Обратите внимание, что для этого подхода требуется правильно сформированный список каталогов, возвращаемый с сервера. Вы не можете, например, выполнить запрос на stackoverflow.com и получить список файлов в каталоге.

Если это не работает (возможно, неправильный HTML), вы можете использовать регулярные выражения (например, preg_match_all ), чтобы найти теги <a , например:

 preg_match_all('@<a href\="([a-zA-Z\.\-\_\/ ]*)">(.*)</a>@', file_get_contents('http://www.ibiblio.org/pub/'), $files); var_dump($files); 

$files прежнему будут соответствовать элементам, всего лишь набор массивов.


UPDATE, я проверил ваш URL ( http://www.ibiblio.org/pub/ ), и он отлично работает (метод preg_match_all ).

Да, это очень возможно. Я не совсем понимаю, что вы подразумеваете под каталогом, но вы должны исследовать искатели веб-сайтов. Это, по сути, то, о чем вы просите, но написано на PHP.

PHP file_get_content сделает трюк для вас.

(Предполагая, что ваш запрос HTTP для этой страницы возвращает список файлов, как вы уже упоминали)