Как скачать изображения из стороннего сайта?

Есть массив спарсенных ссылок на изображения, и нужно сохранить уже сами изображения в папку 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);
}

→ Ссылка