Request 类

Request 类是 HTTP 请求的面向对象表示。该类既可用于处理传入请求(例如浏览器访问应用的请求),也可用于处理传出请求(例如从应用发往第三方应用的请求)。

此类提供了两者所需的通用功能,但在实际开发中,通常会使用继承自 Request 类的子类来调用特定功能。

关于更多使用细节,请参阅 IncomingRequest 类CURLRequest 类 的文档。

类参考

class CodeIgniter\HTTP\Request
getIPAddress()
返回:

如果能检测到,则返回用户的 IP 地址;如果 IP 地址无效,则返回 0.0.0.0

返回类型:

string

返回当前用户的 IP 地址。如果 IP 地址无效,该方法将返回 0.0.0.0

<?php

echo $request->getIPAddress();

重要

此方法会参考 Config\App::$proxyIPs 设置,并针对允许的 IP 地址返回由 HTTP 标头报告的客户端 IP。

isValidIP($ip[, $which = ''])

自 4.0.5 版本弃用: 请改用 Validation 类

重要

此方法已废弃,将在未来版本中移除。

参数:
  • $ip (string) -- IP 地址

  • $which (string) -- IP 协议(ipv4ipv6

返回:

地址有效返回 true,否则返回 false

返回类型:

bool

输入 IP 地址,并根据其是否有效返回布尔值(true 或 false)。

备注

上述 $request->getIPAddress() 方法会自动验证 IP 地址。

<?php

if (! $request->isValidIP($ip)) {
    echo 'Not Valid';
} else {
    echo 'Valid';
}

可接受可选的第二个字符串参数(ipv4ipv6)来指定 IP 格式。默认情况下会同时检查两种格式。

getMethod()
返回:

HTTP 请求方法

返回类型:

string

返回 $_SERVER['REQUEST_METHOD']

<?php

echo $request->getMethod(); // Outputs: POST
setMethod($method)

自 4.0.5 版本弃用: 请改用 CodeIgniter\HTTP\Request::withMethod()

参数:
  • $method (string) -- 设置请求方法。用于模拟请求。

返回:

当前请求

返回类型:

Request

withMethod($method)

Added in version 4.0.5.

参数:
  • $method (string) -- 设置请求方法。

返回:

新的请求实例

返回类型:

Request

getServer([$index = null[, $filter = null[, $flags = null]]])
参数:
  • $index (mixed) -- 变量名

  • $filter (int) -- 要应用的过滤器类型。过滤器列表详见 PHP 手册

  • $flags (int|array) -- 要应用的标志。标志列表详见 PHP 手册

返回:

如果找到则返回 $_SERVER 项的值,否则返回 null

返回类型:

mixed

此方法与 IncomingRequest 类 中的 getPost()getGet()getCookie() 类似,仅用于获取服务器数据($_SERVER):

<?php

$request->getServer('some_data');

如需返回包含多个 $_SERVER 值的数组,请以数组形式传递所有需要的键。

<?php

$request->getServer(['SERVER_PROTOCOL', 'REQUEST_URI']);
getEnv([$index = null[, $filter = null[, $flags = null]]])

自 4.4.4 版本弃用: 此方法自始至终无法正常工作。请改用 env()

参数:
  • $index (mixed) -- 变量名

  • $filter (int) -- 要应用的过滤器类型。过滤器列表详见 PHP 手册

  • $flags (int|array) -- 要应用的标志。标志列表详见 PHP 手册

返回:

如果找到则返回 $_ENV 项的值,否则返回 null

返回类型:

mixed

此方法与 IncomingRequest 类 中的 getPost()getGet()getCookie() 类似,仅用于获取环境变量数据($_ENV):

<?php

$request->getEnv('some_data');

如需返回包含多个 $_ENV 值的数组,请以数组形式传递所有需要的键。

<?php

$request->getEnv(['CI_ENVIRONMENT', 'S3_BUCKET']);
setGlobal($method, $value)
参数:
  • $method (string) -- 方法名称

  • $value (mixed) -- 要添加的数据

返回:

当前请求

返回类型:

Request

允许手动设置 PHP 全局变量的值,如 $_GET$_POST 等。

fetchGlobal($method[, $index = null[, $filter = null[, $flags = null]]])
参数:
  • $method (string) -- 输入过滤器常量

  • $index (mixed) -- 变量名

  • $filter (int) -- 要应用的过滤器类型。过滤器列表详见 PHP 手册

  • $flags (int|array) -- 要应用的标志。标志列表详见 PHP 手册

返回类型:

mixed

从全局变量(如 cookie、get、post 等)中获取一个或多个项目。获取时可通过传入过滤器对输入进行过滤。