source: vendor/guzzlehttp/guzzle/src/Handler/HeaderProcessor.php@ e3d4e0a

Last change on this file since e3d4e0a was e3d4e0a, checked in by Vlado 222039 <vlado.popovski@…>, 7 days ago

Upload project files

  • Property mode set to 100644
File size: 1.0 KB
Line 
1<?php
2
3namespace GuzzleHttp\Handler;
4
5use GuzzleHttp\Utils;
6
7/**
8 * @internal
9 */
10final class HeaderProcessor
11{
12 /**
13 * Returns the HTTP version, status code, reason phrase, and headers.
14 *
15 * @param string[] $headers
16 *
17 * @return array{0:string, 1:int, 2:?string, 3:array}
18 *
19 * @throws \RuntimeException
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}
Note: See TracBrowser for help on using the repository browser.