我正在尝试从远程位置下载文件。我使用 PHPcurl来完成此操作,但代码始终返回零字节文件(甚至 ECHO 也不返回任何内容),并且当我在浏览器上访问 URL 时,它会提示下载文件。为什么代码不能使用curl 下载文件?
如果标题很重要,有没有办法自动设置标题?
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_REFERER, 'https://torcache.net/');
curl_setopt($ch,CURLOPT_ENCODING,"gzip");
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$result = get_data($url);
Run Code Online (Sandbox Code Playgroud)
我要下载的文件具有以下标头:
Content-Type application/x-bittorrent
Cache-Control must-revalidate, post-check=0, pre-check=0
Content-Disposition attachment; filename="1483EC6A5EB53FC27693F848E9E28175577F6743.torrent"
Connection close
Content-Length 153812
Run Code Online (Sandbox Code Playgroud)
注意:我必须添加curl_setopt($ch,CURLOPT_ENCODING,"gzip");
您需要告诉 CURL 遵循浏览器重定向(因为本质上就是发生的情况)。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
之后,您就可以决定如何处理它,但最好将其放入/保存到文件中。
| 归档时间: |
|
| 查看次数: |
4200 次 |
| 最近记录: |