alleyoop и valkyrie являются альтернативными интерфейсами.
Может хватить поддержки для того, что вы хотите, вы можете использовать mingw для компиляции под Windows, если SUA не работает «из коробки».
Если на вашем сервере включен PHP5 и оболочка потока HTTP, невероятно просто скопировать его в локальный файл:
copy('http://somedomain.com/file.jpeg', '/tmp/file.jpeg');
Это позаботится о любой необходимой конвейерной обработке и т. Д. Если вам нужно предоставить некоторые параметры HTTP, вы можете предоставить третий параметр «контекста потока».
Поскольку вы пометили свой вопрос как «php», я предполагаю, что у вас запущен php на вашем сервере. Лучше всего, если вы управляете своим собственным веб-сервером, а затем скомпилируете cURL в php. Это позволит вашему веб-серверу делать запросы к другим веб-серверам. Это может быть довольно опасно с точки зрения безопасности, поэтому у большинства основных провайдеров веб-хостинга этот параметр не включен.
Вот справочная страница php по использованию cURL . В комментариях вы можете найти пример, который загружается, и файл изображения.
Если вы не хотите использовать libcurl, вы можете написать что-нибудь с помощью fsockopen. Он встроен в php (но может быть отключен на вашем хосте) и может напрямую читать и писать в сокеты. См. Примеры на странице руководства fsockopen .
Используйте запрос GET, чтобы загрузить изображение и сохранить его в веб-каталог на вашем сервере.
Поскольку вы используете PHP, вы можете использовать curl
для скачивать файлы с другого сервера.
Вот самый простой способ:
$url = "http://other-site/image.png";
$dir = "/my/local/dir/";
$rfile = fopen($url, "r");
$lfile = fopen($dir . basename($url), "w");
while(!feof($url)) fwrite($lfile, fread($rfile, 1), 1);
fclose($rfile);
fclose($lfile);
Но если вы делаете много-много этого (или ваш хост блокирует доступ к файлам удаленным системам), рассмотрите возможность использования CURL, который более эффективен, немного быстрее и доступен на большем количестве общих хостов.
Вы также можете подделать пользовательский агент, чтобы он выглядел как рабочий стол, а не как бот!
У вас есть четыре возможности:
Удаленные файлы . Для этого необходимо, чтобы allow_url_fopen
был включен в php.ini, но это самый простой метод.
В качестве альтернативы вы можете использовать cURL , если ваша установка PHP поддерживает его. Есть даже пример .
И если вы действительно хотите сделать это вручную, используйте HTTP-модуль .
Даже не пытайтесь использовать сокеты напрямую .
PHP имеет встроенную функцию file_get_contents (), которая считывает содержимое файла в строку.
Php
// Получаем файл
$ content = file_get_contents (" http://example.com/image.jpg ");
// Сохранение в файловой системе. $ fp = fopen ("/ местоположение / в / сохранить / изображение.jpg", "ш"); fwrite ($ fp, $ content); fclose ($ fp); ?> Если вы хотите сохранить файл в базе данных, просто используйте переменную $ content и не сохраняйте файл на диск.
Очень просто использовать file_get_contents . Просто укажите URL-адрес в качестве первого параметра.