Request 類別

請求類別是 HTTP 請求的物件導向表現形式。這意味著它可以用於傳入請求(例如來自瀏覽器的請求),以及發出請求,(例如從應用程式發到第三方應用程式)。 這個類別提供了它們共同需要的功能,但是這兩者也都有各自繼承 Request 類別,然後分別添加特定的功能。

想了解更多請到 IncomingRequest 類別CURLRequest 類別

類別參考

CodeIgniter\HTTP\Request
getIPAddress()
傳回:可以偵測到的使用者的 IP 地址,否則為 NULL ,如果 IP 地址無效,則回傳 0.0.0.0
傳回型態:string

可以偵測到的使用者的 IP 地址,否則為 NULL ,如果 IP 地址無效,則回傳 0.0.0.0:

echo $request->getIPAddress();

重要

此方法會根據 App->proxyIPs 的設定,來回傳 HTTP_X_FORWARDED_FOR、 HTTP_CLIENT_IP、HTTP_X_CLIENT_IP 或H TTP_X_CLUSTER_CLIENT_IP。

isValidIP($ip[, $which = ''])
參數:
  • $ip (string) – IP 地址
  • $which (string) – IP 協議 (『ipv4』 或是 『ipv6』)
傳回:

IP 有效回傳 true,否則回傳 false

傳回型態:

bool

傳入一個 IP 地址,根據 IP 是否有效回傳 true 或 false。

備註

$request->getIPAddress() 自動檢測 IP 地址是否有效。

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

第二個參數可選,可以為 『ipv4』 或 『ipv6』,預設這兩種格式皆會檢查。

getMethod([$upper = FALSE])
參數:
  • $upper (bool) – 以大寫還是小寫回傳方法名,TRUE 表示大寫
傳回:

HTTP 請求方法

傳回型態:

string

回傳 $_SERVER['REQUEST_METHOD'],並且轉換字母到指定大寫或小寫。

echo $request->getMethod(TRUE); // Outputs: POST
echo $request->getMethod(FALSE); // Outputs: post
echo $request->getMethod(); // Outputs: post
setMethod($method)
參數:
  • $upper (string) – 設定請求得方法,用於偽裝請求。
傳回:

HTTP 請求方法

傳回型態:

Request

getServer([$index = null[, $filter = null[, $flags = null]]])
參數:
  • $index (mixed) – 變數名稱
  • $filter (int) – 要使用的過濾器類型,完整列表 見此.
  • $flags (int|array) – 要使用的過濾器的 ID,完整列表 見此.
傳回:

$_SERVER 值,如果不存在則回傳 NULL。

傳回型態:

mixed

該方法與 IncomingRequest 類別 中的 post()get()cookie() 方法相同。只是它只獲取 getServer 的資料 ($_SERVER):

$request->getServer('some_data');

要回傳多個 $_SERVER 值的陣列,請將所有的鍵值以陣列傳遞。

$require->getServer(['SERVER_PROTOCOL', 'REQUEST_URI']);
getEnv([$index = null[, $filter = null[, $flags = null]]])
參數:
  • $index (mixed) – 變數名稱
  • $filter (int) – 要使用的過濾器類型,完整列表 見此.
  • $flags (int|array) – 要使用的過濾器的 ID,完整列表 見此.
傳回:

$_ENV 值,如果不存在則回傳 NULL。

傳回型態:

mixed

該方法與 IncomingRequest 類別 中的 post()get()cookie() 方法相同。只是它只獲取 getEnv 的資料 ($_ENV):

$request->getEnv('some_data');

要回傳多個 $_ENV 值的陣列,請將所有的需要的鍵值以陣列傳遞。

$require->getEnv(['CI_ENVIRONMENT', 'S3_BUCKET']);
setGlobal($method, $value)
參數:
  • $method (string) – 方法名稱
  • $value (mixed) – 需要被加入的資料
傳回:

HTTP 請求方法

傳回型態:

Request

允許手動設定 PHP 全域的值,如 $_GET、$_POST 等。

fetchGlobal($method[, $index = null[, $filter = null[, $flags = null]]])
參數:
  • $method (string) – 輸入過濾器常數
  • $index (mixed) – 值的名稱
  • $filter (int) – 要使用的過濾器類型,完整列表 見此.
  • $flags (int|array) – 要使用的過濾器的 ID,完整列表 見此.
傳回型態:

mixed

從全域中獲取一個或多個物件,如 cookie、get、post 等,可以選擇在檢索時透過過濾器對輸入進行過濾。