xref: /plugin/combo/ComboStrap/Http.php (revision 1fa8c418ed5809db58049141be41b7738471dd32)
137748cd8SNickeau<?php
237748cd8SNickeau
337748cd8SNickeau
437748cd8SNickeaunamespace ComboStrap;
537748cd8SNickeau
637748cd8SNickeau
737748cd8SNickeauclass Http
837748cd8SNickeau{
937748cd8SNickeau
10*1fa8c418SNickeau    public static function removeHeaderIfPresent(string $key)
11*1fa8c418SNickeau    {
12*1fa8c418SNickeau        foreach (headers_list() as $header) {
13*1fa8c418SNickeau            if (preg_match("/$key/i", $header)) {
14*1fa8c418SNickeau                header_remove($key);
15*1fa8c418SNickeau            }
16*1fa8c418SNickeau        }
17*1fa8c418SNickeau
18*1fa8c418SNickeau    }
19*1fa8c418SNickeau
20*1fa8c418SNickeau    public static function getHeader(string $name)
21*1fa8c418SNickeau    {
22*1fa8c418SNickeau
23*1fa8c418SNickeau        $result = array();
24*1fa8c418SNickeau        foreach (self::getHeaders() as $header) {
25*1fa8c418SNickeau            if (substr($header, 0, strlen($name) + 1) == $name . ':') {
26*1fa8c418SNickeau                $result[] = $header;
27*1fa8c418SNickeau            }
28*1fa8c418SNickeau        }
29*1fa8c418SNickeau
30*1fa8c418SNickeau        return count($result) == 1 ? $result[0] : $result;
31*1fa8c418SNickeau
32*1fa8c418SNickeau    }
33*1fa8c418SNickeau
34*1fa8c418SNickeau    private static function getHeaders(): array
35*1fa8c418SNickeau    {
36*1fa8c418SNickeau        return (function_exists('xdebug_get_headers') ? xdebug_get_headers() : headers_list());
37*1fa8c418SNickeau    }
3837748cd8SNickeau}
39