我有以下网址:
http://website.com/?utm_source=1&utm_campaign=2&utm_medium=3
当用户使用这些参数访问我的网站时,我网页上的所有链接都会获取参数并与其原始网址合并。
所以,如果链接是:
http://website.com/link.html
它将成为:
http://website.com/link.html?utm_source=1&utm_campaign=2&utm_medium=3
但我的Google Analytics(分析)对这么多数据感到困惑。我只需要保留utm_campaign
。
即使我有其他参数,是否可以仅获取utm_campaign
的值并应用于我的网址?
这是我目前的代码:
if (isset($_REQUEST['utm_campaign']) {
$queryURL = "?" . preg_replace("/(s=[a-zA-Z%+0-9]*&)(.*)/", "$2", $_SERVER['QUERY_STRING'], -1);
$queryURL = preg_replace("/q=([a-z0-9A-Z-\/])+&(.*)/", "$2", $queryURL, -1);
$GLOBALS["queryURL"] = $queryURL;
} else {
$GLOBALS["queryURL"] = 0;
}
答案 0 :(得分:1)
使用$_GET
数组而不是查询字符串:
if (isset($_REQUEST['utm_campaign'])) {
$query_string = '?utm_campaign=' . $_REQUEST['utm_campaign'];
} else {
$query_string = '';
}
然后,当您创建其他链接时,将$query_string
连接到它们。
答案 1 :(得分:0)
是的,这是可能的:
if (isset($_GET['utm_campaign'])) {
$newUrl = $oldUrl.(strpos($oldUrl,'?') ? '&' : '?').'utm_campaign='.$_GET['utm_campaign'];
}
这段代码会将旧网址更改为新网址。它将旧URL的任何参数考虑在内。我使用$_GET
,因为您不需要$_POST
中的$_REQUEST
。