【发布时间】:2012-05-16 05:06:37
【问题描述】:
我正在尝试从搜索引擎引荐中获取搜索查询。大多数使用 ?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 为空,但是如果我在开关中将默认 $var 指定为“p”,那么来自 yahoo 的搜索查询将正确传递。
【问题讨论】:
标签: php switch-statement http-referer