Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.
   1  <?php
   2  
   3  namespace GuzzleHttp\Handler;
   4  
   5  use GuzzleHttp\Utils;
   6  
   7  /**
   8   * @internal
   9   */
  10  final class HeaderProcessor
  11  {
  12      /**
  13       * Returns the HTTP version, status code, reason phrase, and headers.
  14       *
  15       * @param string[] $headers
  16       *
  17       * @throws \RuntimeException
  18       *
  19       * @return array{0:string, 1:int, 2:?string, 3:array}
  20       */
  21      public static function parseHeaders(array $headers): array
  22      {
  23          if ($headers === []) {
  24              throw new \RuntimeException('Expected a non-empty array of header data');
  25          }
  26  
  27          $parts = \explode(' ', \array_shift($headers), 3);
  28          $version = \explode('/', $parts[0])[1] ?? null;
  29  
  30          if ($version === null) {
  31              throw new \RuntimeException('HTTP version missing from header data');
  32          }
  33  
  34          $status = $parts[1] ?? null;
  35  
  36          if ($status === null) {
  37              throw new \RuntimeException('HTTP status code missing from header data');
  38          }
  39  
  40          return [$version, (int) $status, $parts[2] ?? null, Utils::headersFromLines($headers)];
  41      }
  42  }