学什么之php curl 简易批量下载 案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <title>下载实例</title> </head> <body> <div id="demo"></div> <script> function down(id){ var url = 'down.php?id=' + id; $.ajax({ type: 'get', url: url, dataType: 'json', success: function (data) { html = '总数:' + data.count; html += '到达:' + data.id; $('#demo').html(html); if(data.id < data.count){ down(data.id); } } }); } </script> </body> </html>
$ array = [ 'http://img.hb.aicdn.com/1edecc65cc264af6660064e2177e24ed660af39ae40a1-MICPoj_fw658', 'http://img.hb.aicdn.com/daae19f9281728be3c79d91165c50e774889fce011dfc-gKfamN_fw658', 'http://img.hb.aicdn.com/578fe5a3ea79b8a1dba52c682520909cac00c9f8adcde-H3ouYV_fw658', 'http://img.hb.aicdn.com/bab4fa79830ed3da30016b100861846e4f2a04ded245d-HBY7P0_fw658', 'http://img.hb.aicdn.com/17a21490999236aa69c175c6357135b678123630fa29-1HFB7x_fw658', ]。 $ max = $ id + 2; //数量可根据需求自行修改 if($ max> count($ array))$ max = count($ array); 下跌($数组$ ID,$最大值); $ data ['count'] = count($ array); $ data ['id'] = $ max; echo json_encode($ data); 函数向下($ array,$ id,$ max){ //创建批处理cURL句柄 $ mh = curl_multi_init(); $ running = null; //填充句柄 为($ I = $ ID; $ I <$ MAX; $ I ++){ $ ch [$ i] = curl_init(); curl_setopt($ ch [$ i],CURLOPT_URL,$ array [$ i]); curl_setopt($ ch [$ i],CURLOPT_RETURNTRANSFER,1); curl_setopt($ ch [$ i],CURLOPT_CONNECTTIMEOUT,30); // curl_setopt($ ch [$ i],CURLOPT_SSL_VERIFYPEER,false); // curl_setopt($ ch [$ i],CURLOPT_SSL_VERIFYHOST,0); curl_multi_add_handle($ MH,$ CH [$ I]); } //执行批处理句柄 做{ usleep(10000); curl_multi_exec($ MH,$运行); } while($ running> 0); 为($ I = $ ID; $ I <$ MAX; $ I ++){ $ filename = pathinfo($ array [$ i],PATHINFO_BASENAME); $ resource = fopen('images /'。$ filename,'a'); //要求存在图片目录 fwrite($ resource,curl_multi_getcontent($ ch [$ i])); FCLOSE($资源); //关闭句柄 curl_multi_remove_handle($ mh,$ ch [$ i]); } //关闭批量句柄 curl_multi_close($ MH); }