使用PHP解析来自referer的搜索查询

使用PHP解析来自referer的搜索查询,php,switch-statement,http-referer,Php,Switch Statement,Http Referer,我正在尝试从搜索引擎引用中获取搜索查询。大多数人使用?q参数传递搜索查询,但是yahoo使用?p,所以我尝试使用switch语句,但没有用。以下是我所拥有的: <?php $parse = parse_url($_SERVER["HTTP_REFERER"]); $se = $parse["host"]; $raw_var = explode("&", $parse["query"] ); foreach ($raw_var as $one_var) { $raw = explod

我正在尝试从搜索引擎引用中获取搜索查询。大多数人使用?q参数传递搜索查询,但是yahoo使用?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的搜索查询将正确传递。

您正在
开关
$se[1]
上,但是在您的情况下字符串“yahoo”位于
$se[2]