resolve_redirects: only use three argument version of get_headers() on php 7.1+

This commit is contained in:
Andrew Dolgov 2020-09-20 17:27:04 +03:00
parent 05ef9aac2f
commit d2867d887a
1 changed files with 20 additions and 15 deletions

View File

@ -2008,24 +2008,29 @@
if ($nest > 10)
return false;
$context_options = array(
'http' => array(
'header' => array(
'Connection: close'
),
'method' => 'HEAD',
'timeout' => $timeout,
'protocol_version'=> 1.1)
);
if (version_compare(PHP_VERSION, '7.1.0', '>=')) {
$context = stream_context_create($context_options);
if (defined('_HTTP_PROXY')) {
$context_options['http']['request_fulluri'] = true;
$context_options['http']['proxy'] = _HTTP_PROXY;
$context_options = array(
'http' => array(
'header' => array(
'Connection: close'
),
'method' => 'HEAD',
'timeout' => $timeout,
'protocol_version'=> 1.1)
);
if (defined('_HTTP_PROXY')) {
$context_options['http']['request_fulluri'] = true;
$context_options['http']['proxy'] = _HTTP_PROXY;
}
$headers = get_headers($url, 0, $context);
} else {
$headers = get_headers($url, 0);
}
$context = stream_context_create($context_options);
$headers = get_headers($url, 0, $context);
if (is_array($headers)) {
$headers = array_reverse($headers); // last one is the correct one