CURL. Завантаження зображення

CURL відкриває чималі можливості для автоматизації процесів:

  • реєстраційні форми;
  • автоматичні публікації;
  • сканування даних;
  • переклади.

В цій публікації ми розглянемо нескладний прийом для скачування зображень.

При роботі потрібно врахувати такі параметри:

  • CURLOPT_TIMEOUT — для того, аби не перезавантажувати сторонній сервер запитами;
  • CURLOPT_USERAGENT — аби цей же сервер не сприйняв нас як бота, ми зазначаємо в хедері, що заходимо з браузера мозіли (або будь-якого іншого);
  • CURLOPT_WRITEFUNCTION — додаткова функція, яка зможе функціонувати с-поміж алгоритму CURL;
  • CURLOPT_SSL_VERIFYPEER — дозволяє відмінити звірку сертифікату;
  • CURLOPT_VERBOSE — додаткова інфа про хід операції (якщо потрібно віддебажити).
function download_image($image_url){
 $ch = curl_init($image_url);
 // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // якщо не хочемо перевіряти сертифікат
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_TIMEOUT, 1000); // пауза в 1 секунду
 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
 curl_setopt($ch, CURLOPT_WRITEFUNCTION, "curl_callback");
 // curl_setopt($ch, CURLOPT_VERBOSE, true); // лінія для монітору помилок
 curl_exec($ch);

curl_close($ch); // закриваємо curl 
}

/** callback function for curl */
function curl_callback($ch, $bytes){
 global $fp;
 $len = fwrite($fp, $bytes);
 // тут можуть виводитись додаткові дані для відстеження
 return $len;
}

Тепер зазначаємо дані, заздалегідь створюємо папку “PIAimages” для майбутніх фото та активовуємо функцію.

$image_file = "PIAimages/local_image2.jpg"; $fp = fopen ($image_file, 'w+'); // open file handle download_image("http://www.ikea.com/PIAimages/0523395_PE643776_S5.JPG"); fclose($fp);

З функціями fopen та fclose ми ще попрацюємо в майбутньому, але як Ви вже бачите, вони застосовуються для роботи з файлами на нашому сервері.

Залишити відповідь