前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【黄啊码】PHP将远程资源保存到本地

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

作者头像
黄啊码
发布2022-09-02 18:20:11
3950
发布2022-09-02 18:20:11
举报

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

代码语言:javascript
复制
/**
 * 将远程资源保存到本地
 * @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;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档