webberwu / restful-php
此包是从 rainner/restful-php 分支出来的,它可以解析所有 RESTful 动词(POST、PUT、DELETE、PATCH 等)的原始输入体,并提供一种更好的处理上传文件的方法。
Requires
- php: >=5.4
This package is auto-updated.
Last update: 2024-09-08 20:06:53 UTC
README
此包是从 rainner/restful-php 分支出来的。
这是一个用于在 PHP 中处理 HTTP 输入数据的包。当一个 POST 请求进入 PHP 时,请求的内容类型和内容体(原始输入)会被处理并解析到 _POST/_FILES 数组中。此包将所有 RESTful 动词(POST、PUT、DELETE、PATCH 等)的原始输入体解析到 _REQUEST/_FILES 数组中,并提供一种更好的处理上传文件的方法。
HTTP 输入解析器使用方法
解析器类会执行 PHP 已经为 GET/POST 数据执行的操作,但会针对所有其他 REQUEST_METHOD 动词,并将数据放入 $_REQUEST 和 $_FILES 超全局变量中 (不包括 $_COOKIE)。
此类会查看请求的 Content-Type 以决定如何解析请求的原始内容体。只要请求格式正确,它应该可以无任何问题地工作。目前它可以解析以下内容类型
text/plain
作为 INI 数据。text/html
作为 HTML 格式数据。application/json
作为 JSON 编码数据。application/x-www-form-urlencoded
作为 URL 编码数据。application/xml
作为 XML 格式数据。multipart/form-data
作为多部分表单数据。
支持多维数组类型属性名(multi[level][name]
),并由此类解析为常规数组。
// parse incoming request data $request = new Restful\Parser(); $request->parse(); // preview echo '<pre>'.print_r( $_REQUEST, true ).'</pre>' . "\n"; echo '<pre>'.print_r( $_FILES, true ).'</pre>' . "\n"; exit;
Restful\Parser 公共方法
HTTP 文件管理器
Files 类将接受 $_FILES 数组并重新格式化结构,使其更容易处理多个文件上传和嵌套的多维数组键,例如
<form> <input type="file" name="files[avatar]" accept="image/*" /> <input type="file" name="files[photos][]" accept="image/*" multiple /> </form>
上面的表单将有两个文件对话框按钮,一个接受单个文件,另一个接受多个文件。以下是使用 Files 类访问这些文件的方法
// import and format files from the $_FILES array $files = new Restful\Files(); $files->parse(); // work on the avatar image $files->loopFiles( 'files.avatar', function( $file ) { // save to db, process, etc... echo $file['tmp_name'] ." <br /> \n"; }); // move photos to a folder $photos = $files->moveFiles( 'files.photos', '/path/to/uploads' ); foreach( $photos as $photo ) { // check each file for upload/move errors echo !empty( $photo['error'] ) ? $photo['error'] : 'Success'; echo "<br /> \n"; }
Restful\Files 公共方法
安装 & 设置
手动:在项目的某个位置克隆此仓库,并使用包含的自动加载器来加载包含的类
$ cd /path/to/project/libs $ git clone https://github.com/rainner/restful-php.git
<?php require( './libs/restful-php/autoloader.php' )
Composer:运行以下 composer 命令以包含此包并安装项目的依赖项
$ composer require rainner/restful-php 1.*
作者
Rainner Lins: @raintek_
许可证
许可协议为 MIT。