Skip to content

辅助方法

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-Typeapplication/x-www-form-urlencodedmultipart/form-data,你可以按如下方式检索所有 POST 参数:

// 获取所有 POST 参数
$params = (array)$request->getParsedBody();

// 获取单个 POST 参数
$foo = $params['foo'];