Workerman\Protocols\Http::header PHP Method

header() public static method

设置http头
public static header ( $content, $replace = true, $http_response_code ) : boolean | void
return boolean | void
    public static function header($content, $replace = true, $http_response_code = 0)
    {
        if (PHP_SAPI != 'cli') {
            return $http_response_code ? header($content, $replace, $http_response_code) : header($content, $replace);
        }
        if (strpos($content, 'HTTP') === 0) {
            $key = 'Http-Code';
        } else {
            $key = strstr($content, ":", true);
            if (empty($key)) {
                return false;
            }
        }
        if ('location' === strtolower($key) && !$http_response_code) {
            return self::header($content, true, 302);
        }
        if (isset(HttpCache::$codes[$http_response_code])) {
            HttpCache::$header['Http-Code'] = "HTTP/1.1 {$http_response_code} " . HttpCache::$codes[$http_response_code];
            if ($key === 'Http-Code') {
                return true;
            }
        }
        if ($key === 'Set-Cookie') {
            HttpCache::$header[$key][] = $content;
        } else {
            HttpCache::$header[$key] = $content;
        }
        return true;
    }

Usage Example

 public function onRequest()
 {
     $http = self::$serverInstance;
     $kernel = $this->kernel;
     $http->onMessage = function ($connection, $data) use($kernel) {
         //        $http->on('request', function ($request, $response) use($kernel) {
         //            if ($request->server['request_uri'] !== '/favicon.ico') {
         $l_request = new Symfony\Component\HttpFoundation\Request($data['get'], $data['post'], [], $data['cookie'], $data['files'], $data['server']);
         if (0 === strpos($l_request->headers->get('CONTENT_TYPE'), 'application/x-www-form-urlencoded') && in_array(strtoupper($l_request->server->get('REQUEST_METHOD', 'GET')), array('PUT', 'DELETE', 'PATCH'))) {
             parse_str($l_request->getContent(), $data);
             $l_request->request = new Symfony\Component\HttpFoundation\ParameterBag($data);
         }
         Illuminate\Http\Request::enableHttpMethodParameterOverride();
         $l_request = Illuminate\Http\Request::createFromBase($l_request);
         $l_response = $kernel->handle($l_request);
         $result = $l_response->getContent();
         foreach ($l_response->headers->allPreserveCase() as $name => $values) {
             Http::header($name . ':' . implode(';', $values));
         }
         //            $l_response->send();
         foreach ($l_response->headers->getCookies() as $cookie) {
             Http::setcookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
         }
         $kernel->terminate($l_request, $l_response);
         $connection->send($result);
         //            }
     };
 }
All Usage Examples Of Workerman\Protocols\Http::header