网站的手机浏览界面友好度评估

无法天天时时刻刻守在电脑旁(重量级网络接入方案),笔记本+移动上网卡也不是完美解决方案(虽然可移动,但仍属重量级),随时随地能把互联网放在手中的方式就是手机上网了(轻量级,方便实用)。
摩托罗拉A1600+50M流量GPRS套餐+可爱的Opera mini构成了me的日常移动上网最佳解决方案。其实,me的手机阅读体验有相当长时间了,最早是2003年看jar版的小说起,但从2005年用GPRS上网后就以移动冲浪为主了。这三四年的手机上网经历中,me明显感觉到了移动(mobile)的强劲发展:更多实用应用推出并逐渐成熟,各大网站也纷纷在移动界面上投入了更多的精力。下面聊聊经常逛的一些网站的手机浏览体验。
Google最佳,9分。它的各个网站在Opera mini下都不变形(这是是否友好的主要评价标准,不是me独断,而是这个标准的背后是对W3C网页规范的支持拥抱度),在按钮链结设计上也充分考虑了手机小屏幕的限制,很人性化,操作方便。另外,猛捧Google的另外一个重要原因是它现在几乎是移动互联网的旗手,开发投入推广都下了很大力度,促进了网络移动的快速发展。
其应用中me用的最多的是Google Reader,拿来看博文最合适,很方便,唯一不足的是如果文章较长或当前页面浏览时间太长,share文章时服务器会出错提示失败。另外还有其看家本领搜索也做的好,不过因为落地中国必须和中国移动合做,被相应的阉割了,me不喜用。其它应用还有iGoogle、notebook、Google maps(不错)等。
Twitter不错,7分。有专门的移动版,界面进行了相应简化和优化,直观有效,me平常就用它更新消息,不用再劳累装jar类的第三方程序。
Wordpress,不错,6分。因为经营blog的缘故,me对其后台前台对移动浏览的支持体验甚多,总体感觉良好。在后台方面,无论是2.3还是最新的2.7,页面都没有变形,进行各种管理操作(如审核评论、启用插件等)都可以正常进行,但也仅仅是能进行而已,没有专门进行界面优化。在前台方面,me的blog页面显示正常,没有变形。但Huogo的部落格页面就无法正常显示(超宽),可能原因是主题模板问题吧。
其它网站略评如下:
facebook,5分;
cnbeta,5分;
译言,4分。
整体感觉移动冲浪的体验会越来越好,因为信息化、无时无刻、随时随地的交流是大家的需要,这是趋势,大势所趋。

黑客黑啊

今年五月份在后台发现不少不良访问记录,好不容易清净了一段时间。今天发现居然又来了。IP是121.69.29.10,要求的链接都是以asp或php结尾的,还有rar,这些玩意儿一看就是试图黑了me的blog。从昨晚到今天上午总共有高达6000多次访问,唉,真是锲而不舍啊。修改了.htaccess文件,添加如下规则:

Order Deny,Allow
Deny from 121.69.29.10
Deny from 65.55.109
Deny from 65.55.110
Deny from 65.55.165
Deny from 65.55.232
Deny from 65.55.107

终于清静了。

附恶意访问请求清单:

“/upload/servusu.asp”
“/image/servusu.asp”
“/inc/shell.asp”
“/inc/shell.asp”
“/ad/servusu.asp”
“/bbs/xiao.asp”
“/admin/servusu.asp”
“/bbs/servusu.asp”
“/manage/servusu.asp”
“/bbs/servusu.asp”
“/manage/servusu.asp”
“/admin/servusu.asp”
“/bbs/servusu.asp”
“/manage/servusu.asp”
“/ad/servusu.asp”
“/ad/servusu.asp”
“/admin/servusu.asp”
“/image/digshell1.asp”
“/inc/www.zip”
“/config/www.zip”
“/phpmyadmin/www.zip”
“/uploadfiles/myup.asp”
“/uploadfiles/myup.asp”
“/uploadfiles/digshell1.asp”
“/uploadfiles/myup.asp”
“/upload/myup.asp”
“/upload/myup.asp”
“/uploadfiles/digshell1.asp”
“/ad/digshell1.asp”
“/upload/myup.asp”
“/inc/digshells.asp”
“/uploadimage/网站.rar”
“/user/网站.rar”
“/api/网站.rar”
“/inc/网站.rar”

————————————(更新:2008年11月17日)————
又来了一个,唉。高手们歇歇吧,me这里又没有什么。谢谢啦。
IP是203.86.0.214,查询来自广东省深圳市 润迅通信,访问的地址形如/discuz/forumdata/cache/eval.php

PHP、MYSQL编程笔记

开发StatPressCN过程中恶补PHP和MYSQL知识,水平不行,只好边干边学,呵呵。对一些基础不高深的东东简单梳理下,免得忘了下次重来。

一、MYSQL

  1. 用MYSQL语句直接修改数据。update `db_name` set `urlrequested` = replace(`urlrequested`,’\”,”) where `urlrequested` like “%\'”,把以’结尾的链接请求末尾的’去掉。replace可以保证key的连续性,如果先删除后添加就没有这个好处了。
  2. 插入记录。INSERT INTO users(name, age) VALUES(‘姚明’, 25), (‘比尔.盖茨’, 50), (‘火星人’, 600);如果values中为空,则添加默认值为基础的记录。
  3. 更新记录。需要配合where条件判断。UPDATE users SET age = 30 WHERE id = 12;以上语句都很危险,如果where没有设置的话会更新所有的数据记录,所以在进行类似操作的时候一定要先备份,再审慎
  4. 删除数据有两个命令delete和TRUNCATE。DELETE FROM users WHERE name = ‘Mike’ ORDER BY id DESC LIMIT 6;如果有自动增加的字段,用没有where的delete和truncate都会让这个字段从0开始,如果不想这样,可以用带where 1的语句,不过那样的执行效率很多,因为需要遍历整个数据库的所有记录;删除数据时如果使用形如like ‘$tmpstr%’的语句,一定要判断下$tmpstr是否为空,否则很危险,可能删除掉所有数据,后果严重的很。
  5. 正则表达式在where语句中也可使用,好爽,这下me对正则表达式的学习可以用了。官方文档参见这里。

二、PHP

  1. 分开字符串。$p = explode(“=”,$url);
  2. 打印出数组中的所有元素。print_r($p);
  3. 计算数组中的元素个数。count($p);
  4. 数组运算,类似于java中集合的概念,很方便。生成一个空数组:$bloglist = Array();向数组中增加一个或几个元素(从末尾):array_push($bloglist,$matches[1]);添加到数组头部之前则是array_unshift($bloglist,$matches[1]) ;从数组尾部删除一个元素用array_pop(),从头部删除一个元素则用array_shift();让数组中元素唯一(即无重复元素,类似于结合set的概念):$bloglist = array_unique($bloglist);迭代输出每个元素可以在foreach中使用as:foreach($bloglist as $blog);判断某元素是否在数组中:in_array($lookingFor, $bloglist),返回布尔值真假;数组中每个元素都有个默认的key,可以这样输出看看:while (list($key,$value) = each($bloglist)) {echo “$key : $value<br>”;};还可以合并多个数组$bloglistall = array_merge($bloglist1, $bloglist2);得到两个数组的交集可用array_intersection($bloglist1, $bloglist2);差集可用array_diff($bloglist1, $bloglist2);如需要合集则先array_merge(),然后再用一次array_unique();对数组进行排序则用sort($bloglistall),默认是英文字母顺序;数组的key必须是唯一的,并且key可以设定为字符串,默认是整数。关于数组,更详细的阐释是Array的官方说明(e文版)。
  5. 奇妙的类型自动转换。print(“8&heart5″+20);输出结果为28。
  6. 字符串函数:strlen,得到字符串长度;substr($v,start_pos,length),截取指定长度的字符串,不指定长度则自动取到末尾;strripos($v,”postname”),是否包含指定子字符串,返回所处位置或;sscanf,扫描规律字符串得到相应变量;printf,格式化输出字符串;str_replace,替换子字符串;strstr,找到特定子字符串出现的位置;rtrim会删除末尾的空格和换行等字符,包括空格、\t、\n、\r、\0、\x0b;explode会自动处理行尾的空字符。
  7. 正则表达式。ereg(‘^/[0-9]{4}/[0-9]{2}/{0,1}$’,$out_url);匹配/2008/10
  8. 时间函数。println(strtotime(“now”));输出1224902867,然后用date函数格式化println(date(“c”,$d1));输出2008-10-24T18:03:42+08:00,println(date(“r”,$d1));输出Fri, 24 Oct 2008 18:03:42 +0800,如果用gmdate则输出格林威治标准时,println(gmdate(“r”,$d1));输出Fri, 24 Oct 2008 10:03:42 +0000;其中时区信息是通过date_default_timezone_set(‘prc’);设定的,prc指中国大陆,也可以是其他,有效值列表见这里;另外strtotime还可以对时间做修正,比如strtotime(“3 October 2005”)和strtotime(“1 days”,strtotime(“2 October 2005”))输出的结果都是一样的,可以用的修正符号有“+1 week 3 days 7 hours 5 seconds”,可以用+-号。
  9. file打开某个文件并把每行读入数组;fopen打开一个文件返回句柄,可以设定打开方式为读或者写,打开后内容置空;fwrite则写入内容,成功则返回true,否则是false;操作完毕后需要fclose关闭句柄。

三、WordPress

  1. get_option直接得到选项值,不用每次用mysql语句查询。
  2. get_permalink($id)得到帖子的固定链接地址,注意是包含域名的绝对路径,如果需要相对路径,则需要str_replace(get_bloginfo(“url”),””,get_permalink($id));
  3. update_option如果该项不存在会自动建立。技巧:如果不能确定某个选项是否存在,则可以先update后再delete。
  4. 数组可以一次性存入option中,存储形如a:2:{s:5:”title”;s:8:”my titile”;s:4:”body”;s:12:”Home is warm”;},a指的数组,2是元素个数,title是key名称,5是字符串长度,my titile是title的值,后面body同。
  5. 要调用插件或主题中的函数必须进入wp的主题运作机制,直接调用是无效的,出于安全考虑,同时也是因为无法得到相关环境设定和变量。官方提供的方式是模板,比如您可以自己定义一个page的新模板,然后创建page是选择新模板就可以了。模板标头有特殊要求,见这里
  6. php代码执行其实是以用户权限进行的,因为可以获取文件的在服务器上的本地地址并进行读写操作。

四、HTML

  1. 因为php可以控制输出逻辑,因此可以尽量使用html代码而不是通过php的echo或print输出,这样页面逻辑更清晰,也容易调试。
  2. 表格需要设定宽度后,表格单元中的左对齐右对齐才能起作用。
  3. input type=checkbox name=’statpress_showhotdepth’ value=’checked’ xxx

五、CSS

  1. 样式表嵌入标签的方法。<table class=’mytable’>……</table>,这种情况下mytable应该在外链的css或者当前页面自定义的css中已经定义过;或者直接写style:<table style=”outline:dotted 1px green;”>……</table>
  2. 在形如#sidebar h2{……}中,仅对那些class是sidebar中出现的h2才起作用。

摩托罗拉A1600用上4G的Micro SD卡

入手摩托罗拉A1600时随机附送的卡只有1G,一个天下行(GPS导航软件,e文名叫MOTONAV)的地图就占了五百多兆,一半去了。再想装点歌曲啊、电影啊、书籍啊什么的就显得捉襟见肘,再说了,还得给照相机留点空间,要不不是浪费了这个320万像素、自动对焦、带闪光灯的好用拍照工具啊,最后就是既然已经刷了yan0大侠的A1600_53p_yan0_20080823.sbf版本,怎么能不试试卡分区自动挂载很多附加功能的强大系统呢。怎么办?换卡,换大的。

按照me的心思,换个100G的最好,呵呵,想装多少东西都行,但可惜这个很不现实。有没有这么大的卡先不说,手机支不支持还是要仔细掂量的,印象中原来用过的E680和A1200等最大只支持1G的,买再大的也没有用、无法用。Google了下相关信息,发现说法很多,有说支持4G的,也有说只支持2G的,更有说支持32G的。保险起见,忍住贪心,me买了个4G的。但是确实没想到,就是这个4G的卡,也折腾的me够呛,花了me整整一天时间。

卡是Kingston的,正面文字如下:micro SD HC 4(带圈);4GB C04G JAPAN;Kingston;SDC4/4GB 10,背面有个标签:锐俊代理、必属正品,0809,看来是出货的商家的标记。拿到卡的时候me心里一跳,因为上面写着HC字样,要知道摩托罗拉的手机说明书中丝毫没有提SD HC这码事,因为SDHC应该是一种较新的更强大的存储标准,已经推出了大半年的A1600可不见得支持。

把原来的1G卡上的内容(安装的pkg程序、jar程序和影视文本资料等)拷贝到电脑上备档,好慢,花了二十分钟左右,然后通过转换卡把新买的4G卡接上电脑,然后把内容拷贝过去,更慢,晕死,几乎有半个小时才算搞定。把拷贝了资料(包括.system目录,里面是安装好的pkg、j2me程序,应该是插卡即用的)的SD卡置入手机,开机,不错,在我的收藏中看到了内存卡(是手机系统对SD卡的称谓)。但随后问题就出现了,进入内存卡里面空空如也,刚通过电脑拷贝进去的文件一个都看不见。查看属性,显示容量是1.9G左右。晕啊晕,看来是手机不支持这个4G的SDHC卡啊,也不知道是不支持这个新的HC标准呢,还是不支持4G的容量。

总不至于把卡马上给退回去吧,不能放弃。给卡分个区或许能解决问题。上网Google了下,发现给卡分区是个普遍问题。学习了半天,试用了两种方式,一种是通过分区工具(me用的是PM)给卡分区,未能成功,怎么操作都只能给卡分一个区;通过安装一个驱动(cfadisk)把移动存储扮成固定存储设备,骗过分区软件就可以分区了,但me试了好几次修改注册表,都没有成功。没有办法,只好用yan0介绍的telnet进入A1600的linux系统进行命令行分区

先把sd卡设备卸载:umount /mmc/mmca1,然后用fdisk /dev/mmca进入分区工具界面,看一下help,很简单。me的分配方案如下:先分一个1.7G的主分区,格式为FAT32;余下的都做成扩展分区,然后在里面再分两逻辑分区出来,分别是1.2G和900M,格式都是ext3的linux磁盘格式。分区好后要格式化,命令分别如下:

mkfs.vfat /dev/mmca1
mkswap /dev/mmca5
mkfs.ext3 /dev/mmca6

备注:上面提到的fdisk、mkfs.vfat、mkswap等命令行工具在刷机后已经有了,感谢yan0大侠的集成。)

重新启动手机,进入我的收藏,进入内存卡的时候提示格式化,看来是要对第一个主分区格式化了才行,于是格式化。试着从其他地方copy了几个文件过来,可以正常使用。另外在我的收藏中的“其他”目录中可以发现扩展分区中的两个逻辑分区,分别叫mmca5和mmca6。

然后把分好区的sd卡通过转换卡接到电脑上,无法读取磁盘,提示要格式化。这可要不得。后来再用PM查看,可以看见分区了,但无法进行操作,比如调整大小啊、设置分区格式啊什么的。换了几个工具都不好用,急得me满头大汗。咋办呢。后来想起来,telnet还是有用的,干脆虚拟一个网盘到电脑上算了。

在手机上把USB模式设置为USB网,链接电脑后,在Total Commander中“网络”-》“映射网络驱动器”,输入地址\\192.168.16.2\system,ok,可以当磁盘用了。在向sd卡上拷贝东西的时候才发现前面拷贝还不算慢,这个才是大爷,拷贝800M的东西居然花了一个半小时。

小贴士拷贝文件时会提示空间不够,按确定继续就行了;不过如果文件多的时候,一个个按那还不得烦死;方法是把要拷贝的文件压缩成zip或rar格式,然后在Total Commander中双击压缩包进入后,在从压缩包内部直接拷贝到手机,就不会要求一个确认了。不过您要注意,手机确实要有这么大的空间啊。

慢归慢,好歹能用了。me向mmca5中拷贝了几首歌曲,然后让手机上的播放器刷新媒体库,居然能找到。OK,看来两个逻辑分区也是可用的,好用的。

几点心得和体会:

  1. 摩托罗拉A1600官方支持的卡容量是2G,意味着插上就可以开用了;
  2. 摩托罗拉A1600是支持SDHC格式的卡的;
  3. 摩托罗拉A1600支持4G的卡,能识别,不过要正常使用可能要像me上面一样花些功夫;
  4. 给卡分区时第一个分区必须为主分区,且为FAT格式;其他的逻辑分区格式随便,只要A1600的linux系统能认出来就行了;
  5. 通过telnet进去后模拟的网络盘速度确实很慢。

Over!

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

声明此插件源于Daniele LippiStatPress,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和爬虫列表自定义功能,高级用户专用,可以在选项中选择以出现编辑界面,默认是不开启的。

升级和纠错计划

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

升级记录:

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

1.6.7.3 2009年1月3日

主程序:

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

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

1.6.6.7 2009年1月3日

主程序:

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

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

1.6.6.6 2009年1月1日

主程序:

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

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

1.6.6.4 2008年12月31日

主程序:

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

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

1.6.6.0 2008年12月29日

主程序:

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

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

1.6.5.4 2008年12月21日

主程序:

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

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

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

1.6.4.1 2008年12月14日

主程序:

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

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

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

1.6.3.3 2008年12月10日

主程序:

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

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

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

1.6.2.9 2008年12月7日

主程序:

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

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

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

1.6.2.6 2008年12月2日

主程序:

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

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

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

1.6.1.1 2008年11月26日

主程序:

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

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

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

1.6.0.0 2008年11月26日

主程序:

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

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

1.5.7.9 2008年11月24日

主程序:

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

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

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

1.5.6.9 2008年11月17日

主程序:

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

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

1.5.4.0 2008年11月16日

主程序:

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

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

1.5.3.0 2008年11月16日

主程序:

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

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

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

1.5.2.0 2008年11月15日

主程序:

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

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

1.5.1.8 2008年11月13日

主程序:

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

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

1.5.1.0 2008年11月13日

主程序:

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

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

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

1.5.0.0 2008年11月12日

主程序:

  1. 全面应用正则表达式工具,精确识别访问页面的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日

主程序:

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

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

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

1.3.4.0 2008年10月26日

主程序:

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

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

1.3.3.7 2008年10月26日

主程序:

  1. 增加对搜索引擎wordpress.org.cn和guogou.com的支持。

SearchEngine数据:

支持wordpress.org.cn和guogou.com。

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

1.3.3.6 2008年10月25日

主程序:

  1. 解决了php5.0中有strripos函数而低版本无此函数无法运行StatPressCN的问题,兼容php4.×版本。
  2. 修正了链接请求尾部出现‘的问题(会破坏mysql查询语句)。

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

1.3.3.0 2008年10月24日

主程序:

  1. 修正了统计界面中半个汉字的错误显示;
  2. 修改了“详情”中显示的项目数量。

SearchEngine数据:

增加了对Google Wap和Google Translate的识别,调整了规则顺序,提高程序运作效率。

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

1.3.1.0 2008年10月15日

主程序:

  1. 升级了热帖功能,可以在index和archive中调用。这个功能很直观很方便,是属于访客界面友好类型的。
  2. 升级了对Google搜索引擎的识别,可以辨别client=pub-××××的搜索来访了。

Spider数据:

增加了2个新规则,修正了空格问题(会影响对spider的判别)

Browser数据:

增加了对OffByOne等浏览器的识别。

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

1.3.0.0 2008年10月13日

主程序:

  1. 终于下定决心更改了统计数据库数据结构,对访问页面的id进行登记,这下可以完美解决用户更改permalink设定带来的统计不准问题;爱折腾的同学们,随便换permalink吧,记得在StatPressCN管理界面中对统计系统升级就行了;
  2. 尽量使用wordpress内置函数,少用数据查询,提高程序运行效率。

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

1.2.3.0 2008年10月12日

主程序:

  1. 匆忙间居然把对操作系统和浏览等要素的识别代码给删除了,修正之;
  2. 解决了对形如/category/life/page/3的识别。这个是分类中文章分多页产生的链接形式。
  3. 摒弃原统计中对在线rss阅读器的识别。只要是spider,全杀之。部分解决了上次Hugo Chen朋友提出了统计数据偏高问题。核心就是对spider的处理机制问题。
  4. 在readme.txt文件中增加了用法说明。

Spider数据:

增加了1个新规则

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

1.1.2.5 2008年10月11日

主程序:

  1. 大幅度调整代码,增加对默认固定链接结构的设定支持和兼容,也就是说不管您的固定链接如何设定,StatPressCN都可以很好的工作了;
  2. 增加了对标签、归档、日历等的有效识别;
  3. 更新说明文件,因为使用了部分函数,需要WordPress最低2.3版本及以上的支持;
  4. 经Hugo Chen朋友提醒,增加zh_TW本地化语言文件;
  5. 更新了说明文档中的示例图片。

Spider数据:

增加了12个新规则

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

1.1.1.0 2008年10月7日

主程序:

  1. 修正热帖功能,图形化显示(红五角星);
  2. 丰富说明文件;
  3. 完善简体中文和繁体中文的本地化语言文件。

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

1.0.4.0 2008年10月4日

主程序:

  1. 增加了对简体中文和繁体中文的本地化语言支持。

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

1.0.3.1

主程序:

  1. 为入驻wordpress官方插件基地对程序和文档进行了规范;
  2. 修正程序注释。

SearchEngines数据:

增加了对yahoo alibaba搜索的支持。
—————————————

1.0.3.0

主程序:

  1. 修正了来自www.google.cn的图片搜索;精确识别来自Google搜索联盟(client=aff-sub-lianmeng)的关键字;
  2. 修正搜索引擎名称机制,根据关键字字符码来判断搜索引擎的细类(如Google hk、Google cn和Google tw等);
  3. 对upgrade代码进行了优化。

SearchEngines数据:

增加了对Maxthon搜索的识别。
—————————————

1.0.2.5

主程序:

  1. 完善对繁体中文的支持;
  2. 彻底解决对连接请求的处置。

SearchEngines数据:

增加了繁体中文使用地区Google Cache的支持。

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

1.0.2.0

主程序:

  1. 再次优化搜索引擎关键词的识别,通过搜索引擎类型和其命令开关判断是否需要转换内码;开始支持繁体中文;
  2. 从服务器变量获取连接请求时暂不作解码处理,对默认链接(形如p=233等)链接请求直接处置为permalink;源码中对链接请求的处理考虑了SEO,结果复杂化了,并且导致异形链接请求无法被正确处理,已修正之。
Spider数据:
增加对R6_CommentReader的识别;

SearchEngines数据:

增加了对Google hk、Google tw、Yahoo tw、Yahoo hk搜索引擎的识别,修正了对yahoo搜索合作伙伴的支持(形如coop.yahoo.com.cn)。
—————————————

1.0.1.0

主程序:

  1. 重构了对搜索引擎的识别和处理,优化程序运行效率(解决了upgrade时超时的问题),新增对Google Images和Google Cache的识别,同时对Google cn的处理做了修正,能正确辨别哪些需要decode,哪些不需要;
  2. 解决了因为搜索引擎对加载share-this插件后默认是p=222格式的不正确处理(urlrequested变成了share-this)。
Spider数据:
增加对Yahoo slurp的识别;

SearchEngines数据:

增加了对Google Images、Google Cache和Google cn搜索引擎的识别和修正。

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

1.0.0.3

主程序:

  1. 假如定义了数据保存的时限(在Options中),点按StatPressUpgrade可以自动对保存期限之外的数据进行删除,同时显示删除了多少条记录;
  2. 修正对形如p=23&akst_action页面的识别问题。(p=23样子的页面访问记录主要出现原因是wordpress默认链接导致的,很普遍)
Spider数据:
无;
Broswer数据:
无。
SearchEngines数据:
增加了对Conduit.com、google.com/custom、yahoo.cn搜索引擎的识别,对关键词顺序进行了调整,提高判断效率;删除了大部分用不到的搜索引擎数据,提升程序效能。

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

1.0.0.2

主程序:

  1. 增加两个函数输出,方便朋友们定制模板使用;
  2. 把订阅活跃周期从原来的1一个月修改为半年。
Spider数据:
无;
Broswer数据:
无。
—————————————

1.0.0.1

主程序:

  1. 增加对blog源rss地址访问的统计;
  2. 修正OverView页面:Last Hits仅显示对文章、存档、主页等实质内容的访问记录,不显示rss类的访问记录;
  3. 修正Details页面:Last Referrer仅显示来自其他网站的引用,去除来自搜索引擎的页面引用;
  4. 支持中文搜索引擎,能正确识别搜索关键词;
  5. 如果永久链接结构中有用到postname则可以通过upgrade把原来形如p=21之类的方位地址自动转换为目前的链接样式。
Spider数据:
增加对Blogbus、Sogou、Friendfeed的识别;
Broswer数据:
增加对Chrome浏览器的支持。