1. <?php
  2. /**
  3. * Binds response header arguments for debugging with inline comments.
  4. *
  5. * @param array $headers The array of response headers.
  6. * @return array The modified array of response headers with debugging information.
  7. */
  8. function debugResponseHeaders(array $headers): array
  9. {
  10. $debugHeaders = []; // Initialize an array to store debug headers
  11. foreach ($headers as $headerName => $headerValue) {
  12. // Add the original header
  13. $debugHeaders[$headerName] = $headerValue;
  14. // Add debugging information
  15. if (is_scalar($headerValue)) {
  16. //If its a scalar value, add type and value
  17. $debugHeaders["debug_" . $headerName . "_type"] = gettype($headerValue);
  18. $debugHeaders["debug_" . $headerName . "_value"] = $headerValue;
  19. } elseif (is_array($headerValue)) {
  20. //If it's an array, serialize it for easier viewing
  21. $debugHeaders["debug_" . $headerName . "_value"] = json_encode($headerValue);
  22. } else {
  23. // For other types, show the type
  24. $debugHeaders["debug_" . $headerName . "_type"] = gettype($headerValue);
  25. }
  26. }
  27. return $debugHeaders; // Return the modified array of headers
  28. }
  29. // Example usage:
  30. // $responseHeaders = ['Content-Type' => 'application/json', 'X-Custom-Header' => 'some_value'];
  31. // $debugHeaders = debugResponseHeaders($responseHeaders);
  32. // print_r($debugHeaders);
  33. ?>

Add your comment