|
|
假設URL為
- https://example.com/CcatBgSuccess.php?php?ret=OK&cust_order_no=C201709141001&order_amount=2&send_time=2017-09-14%2010:31:25&acquire_time=2017-09-14%2010:36:38&auth_code=951294&card_no=1849¬ify_time=2017-09-14%2010:37:08
複製代碼 一般用$_GET來獲取變數
可以直接擷取整段作為陣列變數
使用 array_intersect_key 指令,就可直接獲取陣列
- $valid = array_intersect_key($_GET);
- var_dump($valid);
- echo "<br>ret:".$valid['ret'];
複製代碼
php array_intersect_key
範例
使用 PHP 的 array_intersect_key() 函数配合 $_GET 是过滤用户输入的有效方法,它仅保留存在于白名单数组中的键名及其对应值。常用于仅允许特定的查询参数(如 id, page),过滤掉非法输入。
- // 假设请求是: index.php?id=10&page=2&debug=1
- // 允许的参数
- $allowed = ['id' => '', 'page' => ''];
- // 使用 array_intersect_key 过滤 $_GET
- $filtered_get = array_intersect_key($_GET, $allowed);
- // $filtered_get 将只包含: ['id' => '10', 'page' => '2']
- print_r($filtered_get);
複製代碼 關鍵點:
- 白名單機制: array_intersect_key的第二個參數(白名單)決定了哪些鍵名可以從$_GET中通過。
- 安全性:這是一種輕量級的輸入過濾方式,特別是在處理允許特定的查詢參數時,有效防止使用者輸入非法參數。
|
|