У меня есть 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
Вы можете использовать регулярное выражение для вывода 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);