Я написал код, чтобы получить файл через curl. Я хочу только заголовки и не собственно сам файлПолучить заголовки как часть 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_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);
}
Однако ответ, возвращаемый этим не содержит какой-либо информации, которая должна быть в заголовке - например, имя файла
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) ""
}
Так как могу ли я получить собственно заголовок?
'curl_getinfo' - это не то же самое, что и запрос HEAD. См. Http://stackoverflow.com/questions/1378915/header-only-retrieval-in-php-via-curl – Joe
@Joe Спасибо за ссылку на это, но большая часть кода не имеет значения. У меня возникают проблемы с выбором через это. Все, что я хочу, это имя файла из заголовка. Не могли бы вы, если возможно, сказать мне код, который мне нужен? Благодаря! –
Да: не используйте 'curl_getinfo'. Это не возвращает информацию из вызова и получает заголовки от звонка. Вам нужно на самом деле вызвать curl, выдающий запрос 'HEAD', и получить эти заголовки. – Joe