找回密碼
 註冊
搜索
查看: 73|回復: 0

[教學] php array_intersect_key 用法

[複製鏈接]
發表於 昨天 21:44 | 顯示全部樓層 |閱讀模式
Push to Facebook
假設URL為

  1. 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&notify_time=2017-09-14%2010:37:08
複製代碼
一般用$_GET來獲取變數
可以直接擷取整段作為陣列變數
使用 array_intersect_key 指令,就可直接獲取陣列
  1. $valid = array_intersect_key($_GET);
  2. var_dump($valid);
  3. echo "<br>ret:".$valid['ret'];
複製代碼

php array_intersect_key

php array_intersect_key


範例
使用 PHP 的 array_intersect_key() 函数配合 $_GET 是过滤用户输入的有效方法,它仅保留存在于白名单数组中的键名及其对应值。常用于仅允许特定的查询参数(如 id, page),过滤掉非法输入。
  1. // 假设请求是: index.php?id=10&page=2&debug=1
  2. // 允许的参数
  3. $allowed = ['id' => '', 'page' => ''];

  4. // 使用 array_intersect_key 过滤 $_GET
  5. $filtered_get = array_intersect_key($_GET, $allowed);

  6. // $filtered_get 将只包含: ['id' => '10', 'page' => '2']
  7. print_r($filtered_get);
複製代碼
關鍵點:
  • 白名單機制: array_intersect_key的第二個參數(白名單)決定了哪些鍵名可以從$_GET中通過。
  • 安全性:這是一種輕量級的輸入過濾方式,特別是在處理允許特定的查詢參數時,有效防止使用者輸入非法參數。

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|TShopping

GMT+8, 2026-3-18 03:33 , Processed in 0.025323 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表