Как я могу прочитать содержимое каталога на удаленном сервере с помощью PHP?

У меня есть url, http://www.mysite.com/images а каталог images списки каталогов. Как я могу получить файлы в этом каталоге с помощью PHP?

Вот пример, если вам нужно прочитать изображения через HTTP и сервер Apache:

 <?php $url = 'http://www.mysite.com/images'; $html = file_get_contents($url); $count = preg_match_all('/<td><a href="([^"]+)">[^<]*<\/a><\/td>/i', $html, $files); for ($i = 0; $i < $count; ++$i) { echo "File: " . $files[1][$i] . "<br />\n"; } ?> 

Если это тот же сервер, на котором запущен ваш PHP, вы можете использовать opendir () и readdir ().

Я знаю, что этот вопрос очень старый, но просто чтобы заставить меня участвовать в этом форуме, я думал, что добавлю свое мнение. Я обнаружил следующее: (ссылаясь на исходный ответ на использование регулярного выражения.

Мой html получился отформатированным следующим образом:

 <td> <a href="bricks.php">bricks.php</a> </td> 

Поэтому я закончил тем, что использовал это:

 $count = preg_match_all('/<a href=\"([^\"?\/]+)">[^<]*<\/a>/i', $html, $files); 

Я хотел использовать следующее (которое проверено в онлайн-тестировщиках генератора, но не удалось найти совпадение в php-коде):

 $count = preg_match_all('/<td>(?:[\w\n\f])<a href="([^"]+)">[^<]*<\/a>(?:[\w\n\f])<\/td>/i', $html, $files); 

Вам нужен FTP-доступ (учетная запись FTP для этого URL-адреса). Если у вас есть это, вы можете войти на сервер с FTP и использовать:

 opendir() 

а также

 readdir() 

чтобы выполнить то, что вы пытаетесь сделать.


Если у вас нет доступа к серверу, вам нужно будет очистить HTML-код сайта, и он становится более сложным -> поэтому я могу позволить кому-то еще заняться этим … но google search "scrape html site" или что-то подобное, есть много предварительно написанных функций, которые могут делать подобные вещи.

т.е. http://www.thefutureoftheweb.com/blog/web-scrape-with-php-tutorial

http://www.bradino.com/php/screen-scraping/

Вы можете использовать регулярное выражение для вывода URL-адресов из списка. (Нет, вы не можете использовать DOMDOCUMENT, так как это недействительный HTML)

// tho the late-comer, этот кажется немного более удобным для читателей, если не быстрее

 $url = 'http://whatevasite/images/'; $no_html = strip_tags(file_get_contents($url)); $arr = explode('Parent Directory', $no_html); $files = trim($arr[1]); $files = explode("\n ", $files); var_dump($files);