要获取用户通过搜索引擎访问当前页面时使用的搜索搜索关键词,可以通过分析HTTP请求头中的引擎引擎`Referer`字段实现。以下是调词具体方法和示例代码:
一、获取来源地址

在服务器端(如PHP、平台Java等),个好可通过以下方式获取来源地址:

PHP:使用`$_SERVER["HTTP_REFERER"]`获取完整来源URL

Java:通过`HttpServletRequest.getHeader("Referer")`获取
JSP:使用`request.getHeader("referer")`获取
二、搜索搜索解析来源地址中的引擎引擎关键词
不同搜索引擎的URL结构存在差异,需根据域名进行匹配和解析:
百度 关键词位于`wd=`或`word=`参数后,调词例如:`http://www.baidu.com/?平台wd=搜索词`
示例代码(PHP):
```php
function get_baidu_keyword() {
$referer = $_SERVER["HTTP_REFERER"];
if (strpos($referer, 'baidu.com') !== false) {
preg_match('/wd=([^&]+)/i', $referer, $matches);
return $matches ?? '';
}
return '';
}
```
谷歌
关键词位于`q=`参数后,例如:`http://www.google.com/?个好q=搜索词`
示例代码(PHP):
```php
function get_google_keyword() {
$referer = $_SERVER["HTTP_REFERER"];
if (strpos($referer, 'google.com') !== false) {
preg_match('/q=([^&]+)/i', $referer, $matches);
return $matches ?? '';
}
return '';
}
```
其他搜索引擎
Yahoo: 使用`p=`或`keyword`参数,例如:`http://www.yahoo.com/p=搜索词` Sogou
Bing:使用`q`参数,例如:`http://www.bing.com/?调词q=搜索词`
可以参考中的正则表达式进行匹配。
三、平台注意事项
可靠性问题
`Referer`头可能被伪造或省略,个好需结合其他方法验证
移动设备或隐私设置可能不发送该头
编码处理
使用`decodeURIComponent`对关键词进行解码,避免乱码
多关键词匹配
若需匹配多个关键词,建议使用`preg_match_all`并设置全局标志`g`
通过以上方法,可有效获取用户通过搜索引擎访问时的关键词,但需结合业务场景评估其准确性和适用性。