近期评论

 

2010 九月
« 八    
 12345
6789101112
13141516171819
20212223242526
27282930  

访问统计

自20090705起:
  • 当前页面共被访问5次
  • 当前有2位朋友正在访问,今天共有24位朋友来访,昨天有143位朋友,开启统计以来共有14962位朋友,其中有302(55)位订阅了此博
  • 今天站内博文共被访问141次,昨天200次,开启统计以来共计36348次
  • 此博共有文章774篇, 5个页面,评论数为869,留言人共342 个
  • 您来自美国,IP是38.107.191.86,浏览器是,操作系统是

技术支持来自 天高云淡

StatPressCN——BLOG访问统计工具(完美支持简繁中文)

热度:

声明:此插件源于Daniele Lippi的StatPress,me在它的基础之上进行升级开发。me以前的研究开发文章见升级StatPress的功能(完美支持中文)和StatPress深度使用。

插件名称:StatPressCN
最新版本:1.6.8.5(于2009年2月21日)
作者:heart5
【告示】:StatPressCN已经入驻WordPress的官方插件基地,建议大家使用官方插件基地的StatPressCN版本,那样就可以通过插件自动更新(如果访问不了可能是被光荣的墙了,直接用me提供的下载plugin-update-plus)了。当然,本帖作为开发基地,做技术探讨和交流(qq:724987115或gmail:baiyefeng@lovegmail.com)所用,仍会维护更新;另外me还维护了一个StatPressCN综合信息页面,包括下载数量和使用StatPressCN统计工具的blog清单等。
插件下载

请前往WordPress官方插件网站:WordPress Plugins -> StatPressCN

插件安装
关于安装:下载插件压缩包,把解压后得到的statpresscn目录上传至blog站点的wp-content/plugins目录下,然后在管理界面中激活StatPressCN插件即可。
关于订阅数统计:建议安装Feed Count插件(如果您通过feedburner烧录了rss的话),这样在widget中显示的订阅数就相对是全的,因为StatPressCN会读取Feed Count撷取的数据并和对您的blog原生rss的订阅数进行加总,当然如果您没有在feedburner上烧录的话也可以正常使用。
插件使用
查阅访问统计情况:最直观简单的使用就是进入blog管理界面会看到访问统计的链接,点击进入就可以看到访问信息了,功能提供如下:纵览、详情、探测以及其他辅助设置等;
扩展使用:
1、如果您使用了支持widgets的WordPress模板主题,则可以直接调用StatPressCN的widgets,一个叫StatPress,一个是StatPress TopPosts。StatPress是主程序,显示访问统计的汇总信息,使用方法是把这个小工具在主题设计中加入侧栏即可,然后需要稍微做些编辑,相关参数通过形如%totoalvisitors%的形式调用,另外,还提供了显示最近来访者信息的功能(比如从哪儿来、访问了哪些文章等),可以在后台选项面板中启用。

2、那个TopPosts是显示热帖的,可以在主题设计中直接调用这个小工具。

3、在选项中可以直接设定文章热度显示和相关文章显示,不用修改主题代码(很方便哦);另外,为了方便朋友们定制使用统计参数,me提供了几个单独输出的函数,可以在模板代码中使用:

(1)/* Hot,当前页面的热度 */
function iri_StatPress_HotDepth()

注意事项:如果您在single中调用,直接使用 iri_StatPress_HotDepth() 就行了;如果您在index或archive中调用,请使用 iri_StatPress_HotDepth($post->ID) 以传入参数,否则显示的将是当前页面的浏览数而不是具体文章的浏览数。

(2)/* 获取相关文章*
function heart5_related_post($post->ID)

4、为了方便大家了解访客来源,提供了五个IP信息查询引擎,可以自由选用,默认的那个是带GMap支持的;

5、提供了用户自定添加恶意IP和爬虫列表自定义功能,高级用户专用,可以在选项中选择以出现编辑界面,默认是不开启的。

升级和纠错计划

修正通过google.com搜索但自动跳转至google.cn后无法有效识别中文搜索关键词的问题;【搞定】
来自search.live.com的关键词貌似都很无关;【搞定】
过滤形如/wp-cron.php的访问;【搞定】
妥善处置来自baidu cache和google cache的页面参考;【Google Cache部分搞定,Baidu Cache因为机制问题,暂无法处理】
修正对blog源rss的访问统计,正确识别来自同一地址的抓取,目前的数据明显不合理,偏高;【搞定】
增加对繁体中文关键词的判断和识别,方便台湾的朋友使用;【搞定】
调整Overview默认显示天数为20;【搞定】
解决形如akst_action=share-this页面的问题(因为me装了share-this插件导致的)【搞定】;
升级文章热度功能,图形化显示【搞定】;
丰富蜘蛛和爬虫数据文件;【持续更新ing】
增加相关文章功能【搞定】;
把文章热度、最热文章、相关文章和随机文章自动化(不用在手动更改主题模板代码)【搞定了热度功能的自动化】;
优化statpress数据库结构,增加对访问文章的ID登记,彻底解决固定链接切换导致统计不准的问题(为爱折腾的朋友们提供)【搞定】;
增加用户定制功能,比如增加屏蔽IP和搜索引擎数据;【搞定】
解决添加banip规则后依然记录该ip访问的问题【搞定】;
在侧栏小工具中显示当前访问者信息【搞定】;
增加对恶意访问IP的自动识别和禁止功能,安全防护;
提高来访者地理位置的识别精确度【搞定】;
对数据库中表大小限制提供相应处理机制。

升级记录:

—————————————

1.6.7.3 2009年1月3日

主程序:

修正了更改永久链接时在Opera浏览器下出现header错误的bug;
更改了当前访问在页面显示时的地理信息显示来源,更精确了;
添加移动用户来访分析子页面;
热度显示用小图标实现,增加美观度。

—————————————

1.6.6.7 2009年1月3日

主程序:

设置不同的ip信息服务器查询服务,采用调用外部免费接口的方式实现,放弃了自架服务器的设想和尝试;
在侧栏工具中增加comefrom参数,显示用户来自何方。

—————————————

1.6.6.6 2009年1月1日

主程序:

今天收到蓝十一的信,说是dh来信了,呵呵,看来这个ip查询的流量不小;换了四个小时时间还是没有找到更合适的免费ip查询服务,还是用hostinfo吧,比没有强;
在纵览中把ip统统加上链接,可以用domaintools进行查询,呵呵,那个内容可丰富的很;
增加了两行调试信息;
嗯,为元旦献礼了!

—————————————

1.6.6.4 2008年12月31日

主程序:

为了方便调试,分离debug info页面出来作为独立的子页面出现,在其中增加了mysql版本信息、博客名称、blogsite(可能异于默认值)、编码、rss输出所用语言、固定链接模板,格式化输出php的加载模块;
修正了使用个性化地址做blog地址时无法识别文章链接的错误,感谢Maxim朋友(好像是俄罗斯的);
强化相关博文功能设置,如果访问量不超过1000,该项功能在选项中无法启用,以此来增强其准确度,因为内部逻辑是访问的次数越多,统计数据越趋于准确;
修正了相关博文功能无效输出的错误,在没有相关文章的情况下仍然输出“相关博文”几个字是不对的,现在好了,没有的话就不显示,静悄悄的多好;
根据doggie朋友的建议,在StatPress侧栏小工具中增加了所有页面访问量的参数供调用。

—————————————

1.6.6.0 2008年12月29日

主程序:

模块化相关文章功能(其实仅仅是来访者也访问了的文章),可以在选项中启用;启用后自动在前台文章的尾部显示“相关文章”功能。
升级程序时出现了一个问题,默认是开启文章热度和相关文章功能的,且取消不了,现已经修正了,但影响了部分朋友的使用,惭愧啊,教训!

—————————————

1.6.5.4 2008年12月21日

主程序:

感谢hugo的建议,使用maxmind更精确的ip信息库,拿me的网站做的数据服务器,呵呵,希望访问量不要太大;
接受金融旅行者朋友的建议,对侧栏的统计输出格式进行调整,适合大部分模板主题;
感谢浮黑朋友的反馈,修正了对某类permalink设定的支持,比如/post/%year%%month%%day%/%post_id%.html;
修正对以commen结尾的链接请求的识别。

更新禁止IP、spider数据规则。

—————————————

1.6.4.1 2008年12月14日

主程序:

彻底模块化统计系统更新函数,大家可以自行决定对哪些数据记录进行更新,提升运行效率,对于访问量大的blog尤其实用;
在选项中选中某项功能直接执行该操作,不再延后;
在侧栏小工具中显示版本,方便问题追踪;

调整操作系统数据规则,可以识别摩托罗拉、诺基亚等手机上网。

—————————————

1.6.3.3 2008年12月10日

主程序:

优化了统计系统更新功能,减少对数据库的写操作,提升运行速度;
正式把意大利语言支持加入插件代码库;
修正了preg_match中因为php版本兼容问题出现的运行错误,另外在选项中提供了Debug Info信息输出功能,方便捉虫;
回复了statpress reloaded作者要求组团的要求,me更愿意独立开发;
更新了screenshot图片,有空在丰富说明帮助文档。

searchengine.dat增加了对icq的支持,其实它也是基于Google的;另外spider.dat和banip.dat都添加了新规则各一条。

—————————————

1.6.2.9 2008年12月7日

主程序:

感谢Gianni Diurno朋友(来自:gidibao.net)的支持,现在StatPressCN已经支持意大利语了;
修正了export输出时一楼ptype和pvalue字段的小错误,谢谢崔凯。

spider.dat新增两个爬虫判定规则。

—————————————

1.6.2.6 2008年12月2日

主程序:

增加对spider数据的用户自定义功能;并且把它和对恶意IP自定义处理的选项设置,默认是不现实在功能菜单上的,可以在选项中使能;
接受崔凯朋友的建议,在详情页面中Top Referrer部分增加链接,方便回访;
为提升程序效率,更新了数据库字段数据类型,但过程中出了一次代码错误,导致用户页面出现出错提示,并遗漏了对非页面内容的访问数据,惭愧。

searchengine.dat和banip.dat以及spider都有更新。

—————————————

1.6.1.1 2008年11月26日

主程序:

经Hugo提醒,增加了对banips.dat的读写权限判断,原来也有服务器不允许php脚本写入用户目录的文件啊;
借鉴小雨天晴(pcload?)和崔凯同学的建议,丰富了ip查询工具,现在可以自由选择了,共四款,后两种中文用户专用。

searchengine.dat增加了两个俄罗斯的搜索引擎规则,谢谢Maxim朋友。

—————————————

1.6.0.0 2008年11月26日

主程序:

将关于StatPressCN的使用统计等功能拆分出去,在主题中使用,不拖累主程序;
完成恶意IP访问的用户自定义禁止功能,支持.htaccess文件限制访问规则自动生成;更新了bansip.dat的数据结构,支持不统计访问和禁止访问网站(很严厉哟,对恶意的黑客类访问可用)两种规则。

—————————————

1.5.7.9 2008年11月24日

主程序:

根据朋友的建议,在详情页面中增加了链接可以直接查询来访ip信息;
升级了支持页面,提供StatPressCN的全面信息(如下载数量以及部分使用了StatPressCN的blog的清单)。

蜘蛛数据:增加对sogou test的识别。

—————————————

1.5.6.9 2008年11月17日

主程序:

支持在侧栏小工具中显示当前访问者信息,并且自动化设置,可以在选项中使能。

—————————————

1.5.4.0 2008年11月16日

主程序:

完成相关文章功能的支持,访问量越大准确度越高!

—————————————

1.5.3.0 2008年11月16日

主程序:

接受wx朋友的建议,对侧栏widget稍微做了下美化,可惜me的css水平确实太菜,慢慢来吧;
在侧栏中增加对“技术支持来自天高云淡”字样,朋友们不会觉得很突兀吧,呵呵;
完善对采用默认永固链接的统计输出。

banip数据:增加对66.90.73.188的识别,还是freebsd系统,作为spider,为啥都不表明身份呢?!

—————————————

1.5.2.0 2008年11月15日

主程序:

增加了对page(页面)的访问统计支持;
重新规划Option(选项)页面,使之更直观;
解决了统计系统更新时丢失对feed和trackback记录的错误。

—————————————

1.5.1.8 2008年11月13日

主程序:

修正了无法识别禁访IP的bug。

—————————————

1.5.1.0 2008年11月13日

主程序:

识别对页面的feed和trackback的识别并统计访问次数。

搜索引擎数据:增加对114搜索的支持。

—————————————

1.5.0.0 2008年11月12日

主程序:

全面应用正则表达式工具,精确识别访问页面的postid,避免误判;提升页面显示效率;增加对分类和首页翻页的支持,比如那些page/2之类的链接请求。

banip数据:增加88.191.94.206、60.213.186.250、88.191.79.43、88.191.94.206、88.191.97.89。

—————————————

1.3.5.0 2008年10月27日

主程序:

费了好大功夫才揪出微软的Windows Live的作弊行为,彻底清除来自微软的无效搜索数据。

banip数据:增加对微软垃圾搜索IP的识别:65.55.109.和65.55.110.

—————————————

1.3.4.0 2008年10月26日

主程序:

在选项中添加显示文章热度功能,不用再手动更改主题文件了,哈哈。

—————————————

1.3.3.7 [...]

订阅数量统计

热度:

昨天的聚合输出乱码把me的关注点吸引到feed、rss等相关的东东方面来。虽然输出乱码的问题已经暂时解决,但me对feedburner的价值认同大幅度降低,不能再完全依靠它,再次使用其feedflare功能发现超慢之后me就更是无法留恋了。

到WP后台停掉了FeedBurner FeedSmith插件,它的作用是把所有对原生聚合输出的存取都自动转向到feedburner去。这样与feed相关的插件就只剩下Feed Count和Feed Statistics了。两个都是统计订阅数的,前者针对feedburner,把由其托管的订阅数提取出来,后者则针对原生输出的订阅进行统计。me从来没有用过feedsky等其他烧录服务,因此从理论上讲这两个的统计之和应该就是“天高云淡”的总订阅数。好,下面的任务就是把总订阅数动态显示在侧栏。

Feed Count的官方网站这几天一直处于维护状态,没有更详细的资料,好像也不支持widget,只提供了一个函数供调用,如下:

< ?php if (function_exists(‘fc_feedcount’)) fc_feedcount(); ?>

另外Feed Count在WP后台提供了个性化设置界面,可以对上面函数的输出做个性化配置,但是调用该函数后的输出像这样52 位订阅者,不但是字符串不是数值,还带有链接。查看feedcount.php在源码的fc_feedcount函数中发现有这么一部分:

if (trim($map_fc_link)!=”) {
$openlink = “”;
$closelink=”";
}
print ”

$openlink\n”;
if ($map_fc_before) {
print ” $map_fc_before\n”;
}
print “$number\n”;
if ($map_fc_after) {
print ” $map_fc_after\n”;
}
print “$closelink

“;

并且该函数返回值为空,因为它已经把结果print了。其实me只是需要那个$number而已。用一句

return $number;

替代上面代码就OK了。
再来看Feed Statistics,其调用函数feed_subscribers源码如下:

function feed_subscribers(){
$s = FEED_STATS::how_many_subscribers();
echo $s.” feed subscriber”;
if ($s != 1) echo “s”;
}

我们需要的是那个$s,把它返回就行了。
很好,两个数值我们都可以通过调用函数得到了,下面我们来定制输出:
直接订阅

< ?php if (function_exists(‘feed_subscribers’))
$stat_or=feed_subscribers();
print $stat_or; ?>

人,通过feedburner订阅

< ?php if (function_exists(‘fc_feedcount’))
$stat_fb=fc_feedcount();
print [...]

Feedburner再次乱码

热度:

上午醉乡子朋友留言说聚合输出(RSS)乱码了,me看了下,果不其然,又出问题了,所以的中文字符全部显示为问号(?)。这种问题出现也不是一次两次了,只是近半年来一直比较稳定,原来也偶尔这样,后来都是自动好的。me登录到feedburner后又发现管理界面也从中文自动切换为英文了,难不成它们又在做调整?!

仔细检查了下发现blog的原生输出是好的,但是通过feedburner烧录的全部乱码,再到Google Reader中查看订阅发现原来的文章是好的,近几天的显示为乱码,可能是因为Google Reader缓存了原来的正常输出吧。检查GR发现情况如下:

4月7日后的文章开始出现乱码情况;
del.icio.us自动发送的链接订阅摘要中中文显示正常;
乱码文章始自Twitter Tools自动发的4月7日的twitter摘要;
文章乱码后在GR中好像也无法自动换行了。

晚上到网上Google了下,发现很多相关文章。按照MyBeky的文章说法,me去FEED Validator验证网站的聚合输出,发现原生RSS有错误提示,具体如下:

This feed does not validate.

line 214, column 669: ‘utf8′ codec can’t decode bytes in position 5366-5368: invalid data (maybe a high-bit character?)

… 自克隆的法律,但他们 …

In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendation.

line 77, column 101: description contains bad characters (5 occurrences)

… 能正常显示?

第一个错误说是在(转载)世界各国的干细胞研究文章中存在utf8无法解码的字符,第二说是存在不合格字符,me查看了下都是Twitter Tools自动发送的摘要文章。

先处理第一个。帮助上说这种错误是因为RSS中存在高位字符(high-bit [...]