<?php
/**
* Validates response headers configuration for development environment.
* Gracefully handles failures.
*
* @param array $expectedHeaders Array of expected headers and their values.
* @return bool True if all headers are valid, false otherwise.
*/
function validateResponseHeaders(array $expectedHeaders): bool
{
$responseHeaders = getallheaders(); // Get current response headers.
foreach ($expectedHeaders as $headerName => $expectedValue) {
if (isset($responseHeaders[$headerName])) {
if ($responseHeaders[$headerName] !== $expectedValue) {
error_log("Invalid header: " . $headerName . ". Expected: " . $expectedValue . ", Got: " . $responseHeaders[$headerName]);
return false; // Header validation failed.
}
} else {
error_log("Missing header: " . $headerName);
return false; // Header is missing.
}
}
return true; // All headers are valid.
}
/**
* Example usage (development only).
*/
if (isset($_SERVER['PHP_VERSION'])) { //Check PHP version
if (version_compare($_SERVER['PHP_VERSION'], '7.0', '>=')) {
// Example expected headers for development (adjust as needed).
$expectedHeaders = [
'X-Powered-By' => 'PHP/7.4',
'Content-Type' => 'application/json',
'Access-Control-Allow-Origin' => '*',
];
if (validateResponseHeaders($expectedHeaders)) {
error_log("Response headers are valid.");
} else {
error_log("Response headers are invalid. Check configuration.");
}
} else {
error_log("This script requires PHP 7.0 or higher.");
}
}
?>
Add your comment