PHP скачивание файлов по списку URL

Author Автор: Роман Чернышов    Опубликовано: 21 января 2013

Доброго времени уважаемые читатели. Очередной пост — заметка, на тему PHP скачивание файлов по списку URL. Из заголовка поста думаю уже становится ясно о чем пойдет речь. Перейдем к сути дела.

Задача: Скачать большое количество файлов расположенных на удаленном сервере(серверах) имея при этом список адресов URL этих файлов. Это могут быть как каталоги картинок, программ или чего либо еще.

Решение:

Решить данную задачу можно с помощью просто PHP скрипта с использованием CURL.

Список URL файлов

$txt="
http://example.com/common/img/fe/form/main-680-white-important.gif
http://examplecom/common/img/fe/form/main-680-white-checkout-back-link.gif
http://example.com/common/img/fe/form/main-680-white-checkout-cart-link.gif
";
 
$a1=explode("\n",$txt);
$a1=array_unique($a1);
 
foreach($a1 as $url) {
$ch = curl_init($url); // инициализация
$path_parts = pathinfo($url); //получаем название файла из URL
 
// сохраняем полученный файл с его оригинальным названием
 
$fp = fopen('images/'.$path_parts['basename'], 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
 
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
 
echo "$it<br>";
}

В результате имеем папку с закаченными файлами из удаленных источников.

Куда применить? Иногда такой метод применяется для скачивания картинок дизайна какого нибудь сайта донора. Список адресов картинок можно получить из его файла стилей CSS. (Это конечно может использоваться как в благих целях, так и в целях плагиата. Мною подразумеваются конечно же исключительно положительные цели)

Category PHP     Tags ,

5 комментариев to “PHP скачивание файлов по списку URL”

  • VitCOM 01.02.2013 в 9:37 пп

    ну, ну. … а если файлов будет скажем 100-250? хостер тебе спасибо не скажет.

    такой вариант уже не пойдет.

    • Роман Чернышов 04.06.2013 в 12:56 пп

      Думаю любой вариант не подойдет для закачки большого кол-ва файлов с использованием шаред-хостинга. VDS в таком случае думаю исправит ситуацию.

  • PHPbot 05.04.2013 в 2:36 дп

    $url = ‘путь к удаленной картинке’;
    $dir = ‘адрес дириктории для сохранения’;
    $path_parts = pathinfo($url);
    copy($url,$dir.$path_parts[‘basename’]);

    делов то 😉

    • Роман Чернышов 04.06.2013 в 12:46 пп

      Не верно, команда copy не работает с удаленными хостами и получить удаленную картинку например с последующим ее сохранением на собственном хостинге таким образом не получится.

  • Олег 19.10.2016 в 6:09 пп

    «Не верно, команда copy не работает с удаленными хостами и получить удаленную картинку например с последующим ее сохранением на собственном хостинге таким образом не получится.»

    как то делал грабер и изображения с сайта сохранял на сервер с помощью copy
    или речь о чем то другом?
    так же можно и с помощью file_get_contents, file_put_contents

Оставить комментарий

Автор блога
Чернышов Роман
Роман Чернышов
Веб-разработчик, Full Stack
Senior, Architector
PHP, JavaScript, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка