请求类

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

这个类提供了它们都需要的常见功能,但这两种情况都有自定义类来扩展请求类以添加特定功能。在实践中,你需要使用这些类。

有关更多使用详细信息,请参阅 IncomingRequest 类CURLRequest 类 的文档。

类参考

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

如果可以检测到,则为用户的 IP 地址。如果 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';
}

可选的第二个字符串参数为“ipv4”或“ipv6”来指定 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) – 设置请求方法。在伪造请求时使用。

返回:

这个请求

返回类型:

Request

withMethod($method)

在 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 等全局变量中获取一个或多个项目。可以通过传递过滤器在检索时可选地过滤输入。