PHP:不区分大小写的参数

时间:2010-11-18 03:27:59

标签: php variables performance query-string case-insensitive

如何不区分地接受传递的GETPOST值?

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

有没有办法有效地实现上述目标?

1 个答案:

答案 0 :(得分:47)

您可以使用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;

(我之所以说“创建副本”只是因为我不喜欢污染原始的超级全球,但如果你愿意,可以选择覆盖它们。)

就此而言,如果你坚持使用区分大小写的匹配仍然会更好,因为它在搜索引擎和人眼都可能更容易,而且代码也更容易...... 编辑: 好的,根据您的评论,我可以看到您为什么要这样做。