Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.
   1  <?php
   2  
   3  if (!function_exists('getallheaders')) {
   4  
   5      /**
   6       * Get all HTTP header key/values as an associative array for the current request.
   7       *
   8       * @return string[string] The HTTP header key/value pairs.
   9       */
  10      function getallheaders()
  11      {
  12          $headers = array();
  13  
  14          $copy_server = array(
  15              'CONTENT_TYPE'   => 'Content-Type',
  16              'CONTENT_LENGTH' => 'Content-Length',
  17              'CONTENT_MD5'    => 'Content-Md5',
  18          );
  19  
  20          foreach ($_SERVER as $key => $value) {
  21              if (substr($key, 0, 5) === 'HTTP_') {
  22                  $key = substr($key, 5);
  23                  if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) {
  24                      $key = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', $key))));
  25                      $headers[$key] = $value;
  26                  }
  27              } elseif (isset($copy_server[$key])) {
  28                  $headers[$copy_server[$key]] = $value;
  29              }
  30          }
  31  
  32          if (!isset($headers['Authorization'])) {
  33              if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
  34                  $headers['Authorization'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION'];
  35              } elseif (isset($_SERVER['PHP_AUTH_USER'])) {
  36                  $basic_pass = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
  37                  $headers['Authorization'] = 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $basic_pass);
  38              } elseif (isset($_SERVER['PHP_AUTH_DIGEST'])) {
  39                  $headers['Authorization'] = $_SERVER['PHP_AUTH_DIGEST'];
  40              }
  41          }
  42  
  43          return $headers;
  44      }
  45  
  46  }