php curl 简易批量下载 案例

学什么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);
}


猜你喜欢

转载自blog.csdn.net/dandan520520/article/details/80197584
今日推荐