Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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
}