函式名:filter_input()
適用版本:PHP 5 >= 5.2.0, PHP 7
用法:filter_input() 函式用於從外部獲取輸入,並對輸入進行過濾。它接受三個引數:輸入型別、輸入的變數名和過濾器型別。該函式返回過濾後的值,如果過濾失敗則返回 false。
示例:
- 獲取並過濾 POST 請求中的 username 引數:
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
- 獲取並過濾 GET 請求中的 email 引數,同時校驗 email 格式:
$email = filter_input(INPUT_GET, 'email', FILTER_VALIDATE_EMAIL);
if ($email) {
// 郵箱格式正確,進行後續操作
} else {
// 郵箱格式不正確,進行錯誤處理
}
- 獲取並過濾 COOKIE 中的 token 引數,同時轉換為整數型別:
$token = filter_input(INPUT_COOKIE, 'token', FILTER_VALIDATE_INT);
注意事項:
- 輸入型別引數可以是以下常量之一:INPUT_GET、INPUT_POST、INPUT_COOKIE、INPUT_SERVER、INPUT_ENV。
- 過濾器型別引數可以是以下常量之一:FILTER_SANITIZE_STRING、FILTER_VALIDATE_EMAIL、FILTER_VALIDATE_INT 等,具體可檢視 PHP 官方文件瞭解更多過濾器型別。
- 透過 filter_input() 函式獲取輸入時,會自動進行過濾和驗證,提高了安全性,避免了一些常見的安全漏洞。