[英]CURLOPT_FILE don't write headers
我需要下载一个大文件,还需要获取标题才能获取重定向位置(状态代码302)。
我用这个:
curl_setopt($ch, CURLOPT_FILE, $file);
curl_setopt($ch, CURLOPT_HEADER, true);
现在问题如下:
它也将头数据写入输出文件。
有办法只写内容吗?
为了清楚起见。 我想要的只是获取标题,但我只希望将正文写入文件。 另外请记住,我不能将主体数据存储到变量中,因为它是视频数据,因此存储量很大(memory_limit)。
在@Bishop的帮助下,我可以获得有效的解决方案:
$url = 'example.com';
$file = fopen('body.txt', 'w');
$file_header = fopen('headers.txt', 'w')
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_WRITEHEADER, $file_header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FILE, $file);
$data = curl_exec($ch);
现在我将标头保存在一个单独的文件中,可以使用以下命令从那里获取它:
file_get_contents('headers.txt');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.