toflar/http-request-parser

将HTTP请求的字符串表示形式解析为PHP超全局数组

dev-master 2018-06-14 11:50 UTC

This package is auto-updated.

Last update: 2024-08-28 04:33:34 UTC


README

这是正在进行中的工作,尚未发布任何版本

这个小巧的库可以将HTTP请求从其原始字符串表示形式解析为PHP超全局数组。典型的PHP库,如Symfony HttpFoundation,提供使用PHP全局变量(如下所示)将当前请求表示为对象的方法

<?php

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

然而,如果您有一个请求的字符串表示形式,其中许多不支持解析这些内容。这个库解析原始HTTP请求,并提供访问所有超全局的方法,就像PHP创建它们一样。以下是一个例子,可以帮助您更好地理解

<?php

use Toflar\HttpRequestParser\Parser;

$raw = <<<REQUEST
GET /foobar?test=foo%20bar HTTP/1.1
Accept: application/json
Host: example.com
Connection: close
REQUEST;

$parser = new Parser($raw);

var_dump($parser->getGet()); // would output the equivalent of $_GET (decoded as PHP would)

您可以使用这些结果从这些值创建例如Symfony请求等

<?php

use Symfony\Component\HttpFoundation\Request;
use Toflar\HttpRequestParser\Parser;

$raw = <<<REQUEST
GET /foobar?test=foo%20bar HTTP/1.1
Accept: application/json
Host: example.com
Connection: close
REQUEST;

$parser = new Parser($raw);

$request = new Request(
    $parser->getGet(),
    $parser->getServer(),
    [],
    $parser->getCookie(),
    $parser->getFiles(),
    $parser->getServer(),
    $parser->getBody()
);