主页

有时候需要使用 PHP 下载文件并保存。对于小文件可以保存在内存中,然后写到本地;但是对于较大文件,往往会导致内存超限。

故记一次使用 PHP cURL 下载大文件的方法。

方法一

$ch = curl_init();

// ...

$fstream = fopen('file.zip', 'wb');    //打开文件
curl_setopt($ch, CURLOPT_BUFFERSIZE, 4 * 1024 * 1024);    //4MB Buffer
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($ch ,$buffer) use($fstream) {
    fwrite($fstream, $buffer);
    return strlen($buffer);
});

$result = curl_exec($ch);
curl_close($ch);
fclose($fstream);

方法二

$ch = curl_init();

// ...

$fstream = fopen('file.zip', 'wb');    //打开文件
curl_setopt($ch, CURLOPT_BUFFERSIZE, 4 * 1024 * 1024);    //4MB Buffer
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);    //直接输出
curl_setopt($ch, CURLOPT_FILE, $fstream);    //设置输出文件流

$result = curl_exec($ch);
curl_close($ch);
fclose($fstream);

版权属于:NKXingXh
作品采用:知识共享署名-相同方式共享-非商业性使用 4.0 国际许可协议 进行许可。
转载(包括节选)请注明出处。
0

目录

来自 《PHP cURL 下载大文件》
评论

正在加载验证组件

NKXingXh

A bro who loves coding
28 文章数
9 评论量
1 分类数
29 页面数
已在风雨中度过 1年147天13小时34分