我想使用某人用来查找我的页面的查询,这些查询位于引用页面 $GET_['q'] 的 URL 中(对于雅虎 $GET_['p'])。我该如何使用这些?我想要 $query = REFERRING PAGE ($GET_['q']) 之类的东西,但我就是想不通怎么说。
问问题
1430 次
1 回答
5
您正在搜索的信息可在$_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是由客户端发送的,这意味着:
- 它可以被伪造,并且可以包含任何东西——包括坏东西(小心 SQL 注入和 XSS!)
- 它是可选的:浏览器不需要发送它。
于 2009-09-22T21:32:42.573 回答