如何从$ _GET参数中删除“__utma”和“__utmz”?

时间:2013-01-19 04:35:56

标签: php get

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

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

如何可靠地去除所有这些无用数据的$ _GET变量?

1 个答案:

答案 0 :(得分: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