Как скачать изображения из стороннего сайта?
Есть массив спарсенных ссылок на изображения, и нужно сохранить уже сами изображения в папку images на localhost. Сайт, с которого парсятся данные, не разрешает ссылаться на них для скачивания. Пишет 403 ошибку. Попробовал использовать функцию copy(). Она работала и сохраняла картинки, но создавала не нужные файлы jpg в бинарном виде, с которых делались копии нормальных изображений. Как можно было бы сделать по-другому или улучшить вариант с copy()? Парсер написан на php и использует curl.
Ответы (2 шт):
Автор решения: frozencoast
→ Ссылка
Пользуйтесь curlом, главное убедитесь, что директива allow_url_fopen включена
function save_from_url($url, $dest){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw=curl_exec($ch);
curl_close ($ch);
$fp = fopen($dest,'x');
fwrite($fp, $raw);
fclose($fp);
}
Автор решения: Давид Манжула
→ Ссылка
<?php
function save_from_url($url, $destination){
$raw = file_get_contents($url);
file_put_contents($destination, $raw);
}