【发布时间】:2009-09-22 21:26:05
【问题描述】:
我想使用某人用来查找我的页面的查询,这些查询位于引用页面 $GET_['q'] 的 URL 中(对于 yahoo 为 $GET_['p'])。我该如何使用这些?我想要 $query = REFERRING PAGE ($GET_['q']) 之类的东西,但我就是不知道该怎么说。
【问题讨论】:
我想使用某人用来查找我的页面的查询,这些查询位于引用页面 $GET_['q'] 的 URL 中(对于 yahoo 为 $GET_['p'])。我该如何使用这些?我想要 $query = REFERRING PAGE ($GET_['q']) 之类的东西,但我就是不知道该怎么说。
【问题讨论】:
您正在搜索的信息在$_SERVER['HTTP_REFERER']中提供
例如,来自具有此 URL 的页面:http://tests/temp/temp-2.php?q=test+glop,这部分代码:
var_dump($_SERVER['HTTP_REFERER']);
给:
string 'http://tests/temp/temp-2.php?q=test+glop' (length=40)
您可以使用 parse_url 从该 URL 获取查询字符串:
$query = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
var_dump($query);
会得到你:
string 'q=test+glop' (length=11)
现在,您可以使用 parse_str 解析该查询字符串;这段代码:
$params = array();
parse_str($query, $params);
var_dump($params);
会得到你:
array
'q' => string 'test glop' (length=9)
最后,您可以检查您感兴趣的参数是否在该数组中:
if (isset($params['q'])) {
var_dump($params['q']);
}
将给我们,在这个例子中:
string 'test glop' (length=9)
等等 ;-)
注意Referer是客户端发送的,意思是:
【讨论】: