请求类

请求类是 HTTP 请求的面向对象表示。这适用于传入请求,例如来自浏览器的应用程序请求,以及传出请求,例如从应用程序发送到第三方应用程序的请求。

此类提供了它们都需要的一般功能,但两种情况都有从请求类扩展以添加特定功能的自定义类。在实践中,您需要使用这些类。

有关更多使用详细信息,请参阅 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 设置,并将返回 HTTP 标头中允许的 IP 地址报告的客户端 IP 地址。

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

自版本 4.0.5 起已弃用: 请使用 验证 代替。

重要

此方法已弃用。它将在未来的版本中删除。

参数:
  • $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([$upper = false])

重要

使用 $upper 参数已弃用。它将在未来的版本中删除。

参数:
  • $upper (bool) – 是否以大写或小写形式返回请求方法名称

返回值:

HTTP 请求方法

返回类型:

string

返回 $_SERVER['REQUEST_METHOD'],可以选择以大写或小写形式设置。

<?php

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

自版本 4.0.5 起已弃用: 请使用 CodeIgniter\HTTP\Request::withMethod() 代替。

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

返回值:

此请求

返回类型:

请求

withMethod($method)

版本 4.0.5 中新增。

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

返回值:

新的请求实例

返回类型:

请求

getServer([$index = null[, $filter = null[, $flags = null]]])
参数:
  • $index (mixed) – 值名称

  • $filter (int) – 要应用的过滤器类型。可以在 PHP 手册 中找到过滤器列表。

  • $flags (int|array) – 要应用的标志。可以在 PHP 手册 中找到标志列表。

返回值:

如果找到 $_SERVER 项目值,则为该值,否则为 null

返回类型:

混合

此方法与 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

返回类型:

混合

此方法与 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) – 要添加的数据

返回值:

此请求

返回类型:

请求

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

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

  • $index (mixed) – 值名称

  • $filter (int) – 要应用的过滤器类型。可以在 PHP 手册 中找到过滤器列表。

  • $flags (int|array) – 要应用的标志。可以在 PHP 手册 中找到标志列表。

返回类型:

混合

从全局变量(如 cookie、get、post 等)中获取一个或多个项目。可以选择在检索时通过传入过滤器来过滤输入。