PHP apache_request_headers() Function

Quick summary: The PHP apache_request_headers() function fetches all HTTP request headers from the current request.

PHP apache_request_headers() Syntax

apache_request_headers(): array
PHP

PHP apache_request_headers() Basic examples

$headers = apache_request_headers();
print_r($headers);
PHP
Output:
Array ( [Host] => example.com ... )

Returns all HTTP request headers as an associative array.

$headers = apache_request_headers();
echo $headers['User-Agent'];
PHP
Output:
Mozilla/5.0 ...

Access a specific header by name.

PHP apache_request_headers() Real-world usage

$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
    echo "Auth header present";
}
PHP
Output:
Auth header present

Check for API authentication header.

$headers = apache_request_headers();
$token = $headers['X-API-Token'] ?? null;
echo $token;
PHP
Output:
abc123

Read a custom header safely using null coalescing.

PHP apache_request_headers() Edge cases

if (!function_exists('apache_request_headers')) {
    echo "Not available";
}
PHP
Output:
Not available

Function is only available when running under Apache.

PHP apache_request_headers() Common mistakes

Using outside Apache environment

This function does not work in CLI or non-Apache servers.

Incorrect
$headers = apache_request_headers();
Correct
$headers = $_SERVER;

Use $_SERVER or getallheaders() as fallback.

PHP apache_request_headers() Frequently Asked Questions

What does apache_request_headers() do?

Fetches HTTP request headers.

Works on all servers?

No, Apache only.

Alternative?

getallheaders().

Return type?

Associative array.

Use case?

Accessing request metadata.

Common mistake?

Using outside Apache.

Safe?

Validate headers.

Performance?

Fast.

Case sensitivity?

Headers are case-insensitive.

Used in APIs?

Yes.

Handles all headers?

Yes.

Best practice?

Use abstraction layer.