在 awstats 中,我得到一个表格,其中包含用于查找我的网站的所有关键词和短语。我想自己捕获这个,但是每个搜索引擎的 url 都是不同的格式。当 google 是引用者时,我可以使用查询字符串中的变量 q 作为搜索词(例如 google.com?q=my+keywords)但是另一个搜索引擎可能具有格式 searchengine.com?search=my+keywords
是否有识别搜索关键字的通用方法?还是我必须为每个搜索引擎创建一个正则表达式/过滤器?
一种可能性是只获取引用 URL ( $_SERVER['HTTP_REFERER']
) 并解析其中的关键字。
例如,查看这个 Google URL(搜索“堆栈溢出”):
http://www.google.com/search?hl=en&q=stack+overflow&aq=0&oq=stack+over&aqi=g10
GET 变量的值q
包含由 + 号分隔的关键字。
我不得不一直添加它,但这里有一个正则表达式,它应该从 google、yahoo、bing、ask 和 MSN(与 Bing 相同)中删除关键字。它在两者之间留下了 +,但它应该是您开始的好地方:
.*(\?p=|\?q=|&q=|\?s=)([a-zA-Z0-9 +]*)(&toggle=|&ie=utf-8|&FORM=|&aq=|&x=|&gwp).