toflar / http-request-parser
将HTTP请求的字符串表示形式解析为PHP超全局数组
dev-master
2018-06-14 11:50 UTC
Requires
- php: ^7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.6
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^7.2
- sebastian/comparator: ^3.0
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() );