【黄啊码】PHP将远程资源保存到本地

举报
黄啊码 发表于 2022/07/05 00:29:58 2022/07/05
1.1k+ 0 0
【摘要】   啊码一般废话比较少,直接甩代码,不懂扣我,再不懂就只能扣脚丫了,OK? /** * 将远程资源保存到本地 * @param string $source 资源地址 * @param string $local 本地地址 * @return array */private function execDown($s...

  啊码一般废话比较少,直接甩代码,不懂扣我,再不懂就只能扣脚丫了,OK?


      /**
       * 将远程资源保存到本地
       * @param string $source 资源地址
       * @param string $local 本地地址
       * @return array
       */
      private function execDown($source,$local)
      {
         if (!is_dir(dirname($local))) {
              mkdir(dirname($local),0755,true);
          }
         $localFile = fopen($local, 'w');
         $ch = curl_init(); // 初始化 cURL 会话
          curl_setopt($ch,CURLOPT_URL,$source); // 远程地址
          curl_setopt($ch, CURLOPT_POST, 0); // 非POST请求
          curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3000); // 最长等待连接成功时间
          curl_setopt($ch, CURLOPT_FILE, $localFile); // 本地路径
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // https请求 不验证证书
          curl_exec($ch);
         if (curl_error($ch)) {
             $res = [
                 'status' => 0,
                 'message' => curl_error($ch),
                 'time' => 0,
                 'fileinfo' => []
              ];
              fclose($localFile);
              curl_close($ch);
             return $res;
          } else {
             $info = curl_getinfo($ch);
              curl_close($ch);
              fclose($localFile);
             if (filesize($local) != $info['size_download']) {
                 $res = [
                     'status' => 0,
                     'message' => '下载数据不完整,请重新下载',
                     'time' => $info['total_time'],
                     'fileinfo' => []
                  ];
                 return $res;
              }
             $res = [
                 'status' => 1,
                 'message' => '下载完成',
                 'time' => $info['total_time'],
                 'fileinfo' => [
                     'file_type' => $info['content_type'],
                     'file_size' => $info['size_download'],
                     'remote_path' => $source,
                     'local_path' => $local,
                  ]
              ];
             return $res;
          }
      }
  
 

文章来源: markwcm.blog.csdn.net,作者:黄啊码,版权归原作者所有,如需转载,请联系作者。

原文链接:markwcm.blog.csdn.net/article/details/125594024

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。