【发布时间】:2015-10-29 08:12:24
【问题描述】:
好吧,我做了一个脚本检查文件是否存在,但是我从 Curl 得到的标头是错误的
$curl = curl_init( $url );
curl_setopt( $curl, CURLOPT_NOBODY, true );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_FRESH_CONNECT, true);
$data = curl_exec( $curl );
var_dump($data);
当@file_headers() 让我得到布尔值 false 时,它得到我的响应 200,这是正确的文件无法下载(对等方重置连接)
我会使用 file_headers 但它比 curl 慢得多(检查大约 10k 个文件)
知道如何修复 curl 以强制它在文件存在时正确显示吗?
仅供参考 curl_getinfo($curl, CURLINFO_HTTP_CODE); 也显示 200 个
*我的意思是如果文件被对等方重置,因为 cURL 检测文件是否完美存在(发出 Head 请求)而 get_headers() 默认使用 get 请求,有没有办法强制 cURL 发出 get 请求?
添加 curl_setopt($curl, CURLOPT_HTTPGET,true); 后 当我记录 curl 时,我看到:* 来自服务器的空回复,同时获取“由对等方重置”文件,但这是下载我的整个文件
好的,我认为我已经解决了添加 curl_setopt($curl, CURLOPT_RANGE, "1-1");并下载 1 个字节而不是获取标头,如果为 false,则文件不存在或被对等方重置
【问题讨论】:
标签: php file curl header file-exists