<?php
/**
* Tracks request headers for debugging with limited memory.
*
* This function stores request headers in a simple array structure
* and outputs them in a human-readable format. It's designed for
* debugging purposes and avoids storing large amounts of data in memory.
* Suitable for situations where a full log is not needed, but header
* information is valuable.
*
* @param array $headers The array of HTTP headers.
*/
function trackRequestHeaders(array $headers): void
{
// Use a simple array to store the headers.
static $trackedHeaders = [];
// Add the current headers to the tracked headers.
$trackedHeaders = array_merge($trackedHeaders, $headers);
// Output the tracked headers in a human-readable format.
echo "--- Request Headers ---\n";
foreach ($trackedHeaders as $headerName => $headerValue) {
echo "$headerName: $headerValue\n";
}
echo "-----------------------\n";
// Limit the number of tracked headers to prevent excessive memory usage.
if (count($trackedHeaders) > 20) {
$trackedHeaders = array_slice($trackedHeaders, 0, 20);
}
}
/**
* Example usage (for testing). Remove in production.
*/
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'GET') {
$headers = getallheaders(); // Get all request headers.
trackRequestHeaders($headers);
}
?>
Add your comment