PHP cURL 下载大文件
有时候需要使用 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);