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 ми ще попрацюємо в майбутньому, але як Ви вже бачите, вони застосовуються для роботи з файлами на нашому сервері.