使用PHP从引用者解析搜索查询

时间:2012-05-16 05:06:37

标签: php switch-statement http-referer

我正试图从搜索引擎引荐中获取搜索查询。大多数传递带有?q参数的搜索查询,但雅虎正在使用?p所以我试图使用switch语句但无济于事。这就是我所拥有的:

<?php
$parse = parse_url($_SERVER["HTTP_REFERER"]);
$se = $parse["host"];
$raw_var = explode("&", $parse["query"] );
foreach ($raw_var as $one_var) {
$raw = explode("=", $one_var);
$var[$raw[0]] = urldecode ($raw[1]);
}
$se = explode (".", $se);
switch ($se[1]) {
case "yahoo":
$sekeyword = $var["p"];
break;
default:
$sekeyword = $var["q"];
}

print_r ($se);
echo "<br>";
echo "search query is: $sekeyword";

?>

以下是我所看到的:

$ se = Array ( [0] => au [1] => search [2] => yahoo [3] => com )

$ sekeyword为null,但是如果我在交换机中将默认的$ var指定为“p”,那么来自yahoo的搜索查询将被正确传递。

1 个答案:

答案 0 :(得分:2)

你是switch $se[1]但在你的情况下,字符串“yahoo”在$se[2] ..