2010-11-18 61 views
20

如何接受大小寫不敏感的GETPOST值?PHP:不區分大小寫參數

sample.php?OrderBy=asc仍然是相同的sample.php?orderby=ascsample.php?ORDERBY=asc

有效率地實現上述的手段?

+0

不確定是否有很好的解決方案,但是我遇到了這樣一個問題,即散列密碼變得較低並且無法使用;所以要小心,我建議你首先看看爲什麼會發生這種情況;通常在從HTTP轉換爲HTTPS(或返回)時,URL會變得較低。 – BeemerGuy 2010-11-18 03:32:02

+2

改變大小寫的原因是什麼? – zerkms 2010-11-18 03:32:43

+2

well im正在開發一個API,其中系統先前爲使用大寫字母的其他API客戶端提供服務,最近我們對API進行了一些更改,包括確定採用較小的參數。所以爲了保持與以前的API用戶的向後兼容性,我面臨着這樣的問題。 – VeeBee 2010-11-18 03:40:38

回答

42

您可以使用array_change_key_case()創建$_GET的副本,其中包含全部大寫或全部小寫字母的鍵。

$_GET_lower = array_change_key_case($_GET, CASE_LOWER); 
$orderby = isset($_GET_lower['orderby']) ? $_GET_lower['orderby'] : 'asc'; 
echo $orderby; 

(我說「創建副本」,只是因爲我不喜歡污染原超全局變量,但它是你的選擇,如果你想覆蓋它們。)

對於這個問題,它會仍然會更好,如果你只是堅持區分大小寫匹配,因爲它可能會更容易在搜索引擎和人眼,以及更容易在您的代碼... 編輯:好吧,根據您的意見,我可以看到爲什麼你我想做這樣的事情。

+0

改變個案的理由是什麼? – zerkms 2010-11-18 03:32:04

+0

當使用VBA的Shell命令啓動默認Web瀏覽器時,如果瀏覽器是Windows 10 Edge瀏覽器,我會將URL神奇地更改爲全部小寫。但不是在所有的Windows 10電腦上,只有一些。 – user3142056 2018-01-23 20:25:16