试过几个方案,fopen/fwrite、file_get_contents/file_put_contents,最后还是采用了curl,效率高,图片也不会坏掉,只是听说对服务器消耗要大一些,也有高手建议使用socket。

//curl抓取图片过程
function curl_img($img_url,$path){
      $ch = curl_init();
      if (defined('CURLOPT_IPRESOLVE') && defined('CURL_IPRESOLVE_V4')) {
          curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      }
      curl_setopt($ch, CURLOPT_URL, $img_url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      $img = curl_exec($ch);
      $info = curl_getinfo($ch);
      curl_close($ch);
      if ($info['http_code'] != 200)
          $img = NULL;
      if($img)//保存图片到本地
          @file_put_contents ($path, $img);
    }

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据