辅助方法
Slim 的 PSR-7 Request 实现提供了以下额外的专有方法,以帮助你进一步检查 HTTP 请求。
检测 XHR 请求
你可以通过使用 Request 的 getHeaderLine() 方法检查头部 X-Requested-With 是否为 XMLHttpRequest 来检测 XHR 请求。
POST /path HTTP/1.1
Host: example.com
Content-type: application/x-www-form-urlencoded
Content-length: 7
X-Requested-With: XMLHttpRequest
foo=bar
if ($request->getHeaderLine('X-Requested-With') === 'XMLHttpRequest') {
// Do something
}
内容类型
你可以使用 Request 对象的 getHeaderLine() 方法获取 HTTP 请求的内容类型。
$contentType = $request->getHeaderLine('Content-Type');
内容长度
你可以使用 Request 对象的 getHeaderLine() 方法获取 HTTP 请求的内容长度。
$length = $request->getHeaderLine('Content-Length');
服务器参数
要获取与传入请求环境相关的数据,需要使用 getServerParams()。
例如,要获取单个服务器参数:
$params = $request->getServerParams();
$authorization = $params['HTTP_AUTHORIZATION'] ?? null;
POST 参数
如果请求方法是 POST,并且 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data,你可以按如下方式检索所有 POST 参数:
// 获取所有 POST 参数
$params = (array)$request->getParsedBody();
// 获取单个 POST 参数
$foo = $params['foo'];