scu2008/httpparsor

一个用于处理HTTP请求的PHP解析器

dev-master 2016-04-13 09:46 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:26:45 UTC


README

httpparser是一个用于处理HTTP请求数据的PHP解析器。其目的是解决一种HTTP内容类型,例如:application/json application/xml application/x-www-form-urlencoded multipart/form-data,尤其是在multipart/form-data类型。

我们都知道HTTP请求包含DELETE GET HEAD PATCH POST PUT。对于许多框架,如Laravel和Slim,使用php://input方法获取HTTP数据,但这并不是处理multipart/form-data(非POST方法,如PATCH、PUT)的理想方法。这种情况在RESTful模式中最为常见。

httpparser是一个处理HTTP请求数据的PHP解析器,通过httpparser来解析各种类型的HTTP请求数据,content-type为:application/json application/xml application/x-www-form-urlencoded multipart/form-data,尤其是在restful模式下面经常需要处理multipart/form-data,而且请求方式不为POST的情况。

特性

  • 统一采用php://input方式获取数据
  • 针对非POST方式时的multipart/form-data进行分块解析
  • 文件或图片完全储存在内存中,操作速度非常快

类的说明

  • http 全局处理HTTP请求
  • parser 处理各种content-type
  • collection 集合类
  • body HTTP消息体

注意事项

  • 当使用非POST方式上传文件时,不再使用$_FILES数组处理
  • 当使用非POST方式上传文件时,文件内容不是以文件名的方式保存,而是以字符串的方式保存在内存中

示例

$httpparser = new \HttpParser\Http();
$method = $httpparser->getMethod();
if($method == 'GET'){
   $queryParams = $httpparser->getQueryParams();  //get方式的获取数据
}else{
   $parsedBody = $httpparser->getParsedBody();   //非get方式获取数据
}