Скрипт загрузки файла на PHP

#php

#php

Вопрос:

Я не знаю, возможно ли это. У меня есть веб-страница с примерно 250 ссылками, каждая в отдельной строке. Моей первоначальной мыслью было использовать fopen() для получения файлов, но это не очень помогло, потому что для чтения / загрузки требуется указать имя файла.

Но файлы, которые я хочу загрузить, перечислены в виде ссылок по вертикали, на одной веб-странице, например:

введите описание изображения здесь

Это интерактивные ссылки — думайте об этом как о просмотре каталога со ссылками на файлы. Есть ли способ перебрать эти ссылки на этой странице и загрузить файлы, на которые они указывают?

Всего примерно около 250 ссылок. Спасибо за вашу помощь.

Комментарии:

1. Покажите нам HTML-источник веб-страницы. Или, по крайней мере, структура.

2. Вы пытаетесь сделать это разово или будете регулярно использовать этот же скрипт для загрузки со страниц, подобных этой?

3. С помощью комбинации синтаксического анализатора DOM и file_get_contents() это должно быть довольно просто…

4. @James, это клиентский сайт, и они предоставили нам каталог для загрузки файлов оттуда. Но для ручного нажатия и загрузки 250 ссылок потребуется время. Отсюда и необходимость в простом скрипте.

5. Я бы посоветовал DownThemAll! Расширение Firefox для этого, предполагая, что это одноразовая необходимость загружать статические файлы.

Ответ №1:

PHP, вероятно, излишен для этого. Если файлы имеют предсказуемые имена (и они, безусловно, кажутся), вы можете сделать это быстро с помощью любого wget, например:

 wget http://example.com/folder/file{1..1000}.png
  

Или cURL, например:

 curl -O http://example.com/file[1-1000].png
  

Ответ №2:

Я думаю, что вы ищете функцию file();

Это возвращает массив с каждой строкой файла.

Комментарии:

1. Вы продолжали менять свой вопрос.. вы редактировали примерно 3 раза. Как я должен отвечать на ваши вопросы? Я потеряю очки из-за тебя.

2. Я не изменил вопрос, я только опубликовал скриншот того, как выглядит файл. Кроме того, ваше решение вообще не помогло.

3. ну тогда, как фактический ответ на ЭТОТ вопрос… Вам понадобится анализатор XML или HTML для php для анализа файлов и папок, чтобы получить расположение файлов.

Ответ №3:

Проверьте этот синтаксический анализатор PHP DOM: http://simplehtmldom.sourceforge.net /

Прямо на главной странице есть пример для извлечения всех URL-адресов. Все, что вам нужно сделать, это слегка изменить его, чтобы URL-адреса сохранялись в массиве, а не повторялись.

Как только вы получите этот массив URL-адресов, просто используйте fopen(), чтобы захватить файл, и используйте fwrite(), чтобы сохранить его где-нибудь на вашем сервере.

Ответ №4:

Я бы посоветовал DownThemAll!Расширение Firefox для этого, предполагающее одноразовую загрузку статических файлов

Ответ №5:

Спасибо, ребята, за ваши предложения, в конце концов я написал небольшой скрипт, который сделал то, что я хотел. Опубликую его, если кто-нибудь захочет его увидеть.