Php 获取标题作为CURL的一部分
我已经编写了一些代码来通过curl获取文件。我只想要标题,而不是实际的文件本身Php 获取标题作为CURL的一部分,php,curl,http-headers,Php,Curl,Http Headers,我已经编写了一些代码来通过curl获取文件。我只想要标题,而不是实际的文件本身 $info = curl_init() or die('error 1'); curl_setopt($info, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($info, CURLOPT_PORT , 8089); curl_setopt($info, CURLOPT_URL, $url); curl_setopt($info, CURLOPT
$info = curl_init() or die('error 1');
curl_setopt($info, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($info, CURLOPT_PORT , 8089);
curl_setopt($info, CURLOPT_URL, $url);
curl_setopt($info, CURLOPT_HEADER,true);
curl_setopt($info, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($info, CURLOPT_NOBODY, true);
//curl_setopt($info, CURLOPT_SSL_VERIFYPEER, 0);
curl_exec($info);
if(!curl_errno($info)){
$response = curl_getinfo($info);
echo "<pre>";
print_r(get_headers($response));
echo "</pre>";
}else{
echo "error!";
echo "<br>" . curl_error($info);
}
那么,如何获取实际的头本身呢?发生这种情况的原因是因为我放弃了curl\u exec的输入。我将该部分代码更改为:
curl\u getinfo
与HEAD请求不同。请看@Joe,谢谢你链接到它,但是这里的很多代码都是无关的,我在挑选这些代码时遇到了问题。我只需要标题中的文件名。如果可能的话,你能告诉我做这件事需要的代码吗?谢谢是:不要使用curl\u getinfo
。这不是从调用中返回信息,也不是从curl调用中获取标题。您需要实际调用curl发出一个HEAD
请求并获取这些头。但是如何使用HEAD请求调用curl呢?我告诉它去拿头球而不是身体。这还不够吗?标题是您要丢弃的curl\u exec
的结果。您需要的数据不是来自curl\u getinfo,而是来自curl\u exec。如果你读了这篇链接文章并实际查看了代码,你会发现。@shihon不幸的是,我没有足够的代表来立即执行此操作,必须等待2天。
array(26) {
["url"]=>
string(55) "https://www.filepicker.io/api/file/CjDfxG0WSmGiY3O2eKDE"
["content_type"]=>
string(9) "image/png"
["http_code"]=>
int(200)
["header_size"]=>
int(840)
["request_size"]=>
int(86)
["filetime"]=>
int(-1)
["ssl_verify_result"]=>
int(0)
["redirect_count"]=>
int(0)
["total_time"]=>
float(1.578048)
["namelookup_time"]=>
float(0.000494)
["connect_time"]=>
float(0.026931)
["pretransfer_time"]=>
float(0.13615)
["size_upload"]=>
float(0)
["size_download"]=>
float(0)
["speed_download"]=>
float(0)
["speed_upload"]=>
float(0)
["download_content_length"]=>
float(965985)
["upload_content_length"]=>
float(0)
["starttransfer_time"]=>
float(1.578002)
["redirect_time"]=>
float(0)
["certinfo"]=>
array(0) {
}
["primary_ip"]=>
string(11) "79.125.4.68"
["primary_port"]=>
int(443)
["local_ip"]=>
string(11) "192.168.0.9"
["local_port"]=>
int(53950)
["redirect_url"]=>
string(0) ""
}
$headers=curl_exec($info);