2

当我回显 $_GET 变量的内容时,有两个值甚至不在链接中。

array (
'__utma' => '118264987.369913698.1357785187.1358515273.1358367728.77',
'__utmz' => '118254987.1328042362.21.9.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not provided)',
)

我怎样才能可靠地去除所有这些无用数据的 $_GET 变量?

4

1 回答 1

3

您可以像这样删除“有问题的”数组键:

// only use the keys that we want
$keys = preg_grep('/^__utm.$/', array_keys($_GET), PREG_GREP_INVERT);
// get the values that belong to those keys
$values = array_intersect_key($_GET, array_flip($keys));

它删除(或者更确切地说是跳过)以一个字符开头__utm并且后跟一个字符的键。

顺便说一句,您可以将模式更改为更具限制性,例如:

^__utm[az]$

只会删除__utma__utmz但不会删除__utmx

于 2013-01-19T04:49:50.237 回答