You cannot polyfill http_get_last_response_headers because the $http_response_header has to be in scope for it to be read. As soon as you put it in a function, it's out of scope.(PHP 8 >= 8.4.0)
http_get_last_response_headers — Retrieve last HTTP response headers
Returns an array containing the last HTTP
response headers received via the
HTTP wrapper.
If there are none, null is returned instead.
This function has no parameters.
Returns an indexed array of HTTP headers
which were received while using the
HTTP wrapper.
If there are none, null is returned instead.
Example #1 http_get_last_response_headers() example
Description.
<?php
file_get_contents("http://example.com");
var_dump(http_get_last_response_headers());
?>The above example will output something similar to:
array(14) {
[0]=>
string(15) "HTTP/1.1 200 OK"
[1]=>
string(20) "Accept-Ranges: bytes"
[2]=>
string(11) "Age: 326940"
[3]=>
string(29) "Cache-Control: max-age=604800"
[4]=>
string(38) "Content-Type: text/html; charset=UTF-8"
[5]=>
string(35) "Date: Mon, 11 Nov 2024 13:34:09 GMT"
[6]=>
string(23) "Etag: "3147526947+gzip""
[7]=>
string(38) "Expires: Mon, 18 Nov 2024 13:34:09 GMT"
[8]=>
string(44) "Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT"
[9]=>
string(24) "Server: ECAcc (nyd/D16C)"
[10]=>
string(21) "Vary: Accept-Encoding"
[11]=>
string(12) "X-Cache: HIT"
[12]=>
string(20) "Content-Length: 1256"
[13]=>
string(17) "Connection: close"
}
You cannot polyfill http_get_last_response_headers because the $http_response_header has to be in scope for it to be read. As soon as you put it in a function, it's out of scope.For PHP versions < 8.4, you can write a polyfill to be prepared for the future:
if ( ! function_exists("http_get_last_response_headers") ) {
function http_get_last_response_headers() {
if ( ! isset($http_response_header) ) {
return null;
}
return $http_response_header;
}
}