代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
搜索引擎来源关键字分析程序
作者:
小囧
/ 发布于
2012/10/22
/
663
搜索引擎来源关键字分析程序
<div><?php</div> <div>/**</div> <div>* 分析搜索引擎到来的关键字</div> <div>*</div> <div>*</div> <div>* @author zhangjun</div> <div>* @charset utf-8</div> <div>*/</div> <div>class searchTerms {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static $banUrl = array('qq.com','localhost'); //不解析的referer 有利于加快程序处理速度</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static $parseHost = array('baidu','google','360','soso'); //能解析的referer</div> <div></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>/**</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span> * 主方法</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span> * @return boolean || array</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span> */</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function keyword(){</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(!isset($_SERVER['HTTP_REFERER']))</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>return false;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$referer = trim($_SERVER['HTTP_REFERER']);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$refererArr = parse_url($referer);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>//判断refer是否来至不需要分析的地址。</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(self::inBanUrl($refererArr['host']))</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>return false;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$hasParseFun = false;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>foreach(self::$parseHost as $host) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(strpos ($refererArr['host'],$host) !== false) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$hasParseFun = true;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>break;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>}<span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(!$hasParseFun)</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>return false;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$queryVars = array();</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>parse_str($refererArr['query'], $queryVars);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>//调用每个搜索引擎的单独处理方法</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$method = 'parse'.ucfirst($host);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>return self::$method($queryVars);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span>/* 已取消使用正则的方式。</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function buldPattern($rule) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$host = str_replace('.', '\.', $rule['host']);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$patterns = array();</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>foreach ($rule['key'] as $key) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$patterns[] = $host . '.+?'.$key.'=';</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span>return "/(?:" . implode('|', $patterns).')([^&]*)/';</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>}*/</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function inBanUrl($referer) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>foreach(self::$banUrl as $url) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(strpos($url, $referer) !== false)</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>return true;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span>return false;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function parseBaidu($params)</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = '';</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(isset($params['kw'])) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = $params['kw'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} else if(isset ($params['wd'])) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = $params['wd'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} else if(isset ($params['word'])) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = $params['word'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>return isset($params['ie']) && (strtolower($params['ie']) == 'utf-8') ? $searchTerms : iconv('gbk', 'utf-8', $searchTerms);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function parseGoogle($params)</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = '';</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(isset($params['q'])) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = $params['q'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span>return isset($params['ie']) && ($params['ie'] == "GB") ? iconv('gbk', 'utf-8', $searchTerms) : $params['q'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function parse360($params)</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = '';</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(isset($params['q'])) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = $params['q'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span>return $searchTerms;</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span></div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>public static function parseSoso($params)</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = '';</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>if(isset($params['w'])) {</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>$searchTerms = $params['w'];</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div><span class="Apple-tab-span" style="white-space:pre"> </span>return iconv('gbk', 'utf-8', $searchTerms);</div> <div><span class="Apple-tab-span" style="white-space:pre"> </span>} <div>}
试试其它关键字
搜索引擎
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
小囧
贡献的其它代码
(
4
)
.
搜索引擎来源关键字分析程序
.
去掉复制代码中的行标的工具
.
php密保卡
.
php二分法
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3