Archives Posts
改版
眼看要到年底了,WP2.71、DZ7.0、UCH1.5也都相继推出,遂决定对网站进行全面改版。
1.左手日记会对已发表的日志进行归档,改为个人资讯类博客,呈现形式为CMS式。
2.拆招网的BBS以及SNS会统一改为绿色风格,并着手点评相关的细节改进,比如学校信息、点评模板、标签挂接等。
3.着手IDC站的建设。
本文将作为左手日记改版前的最后一篇日志。
眼看要到年底了,WP2.71、DZ7.0、UCH1.5也都相继推出,遂决定对网站进行全面改版。
1.左手日记会对已发表的日志进行归档,改为个人资讯类博客,呈现形式为CMS式。
2.拆招网的BBS以及SNS会统一改为绿色风格,并着手点评相关的细节改进,比如学校信息、点评模板、标签挂接等。
3.着手IDC站的建设。
本文将作为左手日记改版前的最后一篇日志。
本次黑屏只针对WindowsXP专业版,对家庭版则没有影响(事实上也很少有人用盗版的家庭版),下面给出六种破解“微软黑屏”的方案。
1变版法
用序列号替换器
个人认为这个方案是最佳解决方案,它能从根本上解决问题。其方法是下载“序列号替换器”,可以让系统变成正版,保证通过微软的正版验证。
2认证法
下载正版认证包
下载一个名为MSWGA.EXE的文件(中文名称:微软正版认证离线包),下载后双击运行即可。系统可能会问你“现在安装的版本低,是否替换”,选择“是”就能通过正版验证。
3手工法
修改注册表定位
运行输入regedit回车,打开注册表定位[HKEY_LOCAL_MA-CHINE\SOFTWARE\Microsoft\
windowsNT\CurrentVersion\winl-ogon\Notify\wgaLo
gon]分支将一个名为“wgaLogon”删除,重启电脑。再把C:\windows\system32中的“wgatray.exe”删除,在系统盘搜索查找,在别的文件夹中如还有,删除即可。
4工具法
用工具下载补丁
关闭自动更新后,下载超级兔子或360安全卫士,让工具下载补丁。选择系统漏洞检测后,会帮助你下载安装。使用这种方法不会安装“wga-tray.exe”,也就不会出现黑屏的情况。
5时间法
改电脑系统时间
用户把所有重要的文件备份到非系统盘中;当天不要更新系统;将系统时间修改为“2007”年,延迟激发黑屏的系统时间。弊端是可能会造成系统紊乱。
6卸载法
通过MSI卸载
默认路径下,找到C:\WINDOWS\SoftwareDistribution\Download,打开搜索,然后输入OGANotifier.CAB,找到之后将其解压,你会发现有一个MSI文件OGANotifier.msi,单击鼠标右键,选择“卸载”就可以了,然后重新启动计算机,正版验证文件就会被完全清除。
微软的WGA和OGA果然如他们所说的那样是可以选择的,并且可以通过设置打开自动更新而没有后顾之忧。
一直等着微软的黑屏,因为从来都是关闭自动更新而通过金山清理专家和升级天使之类的第三方工具进行手动更新,所以想更新到WGA和OGA是不可能的。按照微软的说明,今天是正式施行黑屏计划的日子,于是一早起来就打开了微软的更新站点update.microsoft.com,开始手动更新。
我选择了快速安装,在经过了一段不是漫长的时间等待之后,微软给我列出了四大类一共14项更新,其中windows类和office类的第一个就是WGA和OGA。直接选择“安装更新程序”,会弹出对话框问你是否安装WGA,选择“我拒绝”,又弹出一个对话框,把“不再安装这些更新”的复选框勾上,确定后会再弹出一个对话框问你是否安装OGA,选择方式和WGA相同。
然后接下来就是正常的安装了。全部安装完成后就可以打开“自动更新”而不用再担心WGA和OGA在你电脑里留下什么记号了。不过我仍然不会打开“自动更新”,这个东西本来就很烦。
儿子说:现在社会以貌取人。老子不信,于是打赌。 父子找出改革之前的旧衣服套上,儿子则西装革履,两人先后来一茶楼,老头先进店,无人招呼,只好找一角落座位坐下。
儿子后进店,刚到门口,伙计就上前招呼,引至一靠窗位置坐下,又是端茶,又是上点心,相当热情。儿子看了父亲一眼,得意洋洋。但看到父亲受冷落,心有不忍。于是招呼伙计说:给角落那位老人上壶好茶,点心随他点,钱由我出。伙计不解,问:你出钱做东啊。儿子说:是。可伙计偏要打破沙锅问到底:你为什么要做东啊,你和他什么关系啊。
儿子想了半天说:我和他儿媳妇是相好。
于是,伙计给老头上了茶,又端来点心,说:你吃吧,那位先生请客做东。
老头也没说什么,心安理得的品茶吃点心。伙计看到这样,有点鄙夷的看着老头,又有点心不甘,对老头说:他和你儿媳妇是相好呢。
没想到老头没反应,伙计奇怪了。伙计问老头:你怎么不找他算帐啊?
老头不屑一顾的说:他和我儿媳妇才相好几个月啊!我和他妈都相好几十年了!
如果是小数据,建议使用白乐天的工具。但是大数据是收费的,我在这里说一下思路。
我以整合用户和帖子两部分数据为例说明。
一、用户数据。
基本的方式可以参考多论坛整合共用同一UC的方法
过程可能比较繁琐,也很有可能出错,所以操作前务必做好备份。
首先要说明mysql的操作是用navicat进行的,比phpmyadmin要方便的多。
条件设定:
有两个论坛分别为bbs1和bbs2,设定bbs1为主论坛,bbs2为从论坛。bbs1用的数据库为sql1,bbs2用的数据库为sql2。将bbs2搬到bbs1上,与bbs1共用同一个uc1。
1.备份bbs1的所有表到bak1,备份bbs2的所有表到bak2。备份是重要的一步,我相信任何一个站长都知道应该备份,但是不得不再废话一次!
2.将bak1中的uc_members和cdb_members复制为uc1_members和cdb1_members;将bak2中的uc_members和cdb_members复制为uc2_members和cdb2_members
3.将DZ6.1安装包中的utilities\upgrade10.php复制到bbs2根目录下(论坛根目录),并执行,按提示操作,记下uid的偏移量x。
4.升级bak2中uc2_members和cdb2_members的uid
UPDATE uc2_members SET uid=uid+x;
UPDATE cdb2_members SET uid=uid+x;
如果uid+x后与现有uid重复,则会报错。可以先加个较大的值Y后,再减去一个Z,只要x=Y-Z就可以了。
5.将uc2_members和cdb2_members复制到bak1中,追加members数据
replace INTO `uc1_members` (`uid`,`username`,`password`,`email`,`regip`,`regdate`,`salt`)
SELECT `uc2_members`.`uid`,`uc2_members`.`username`,`uc2_members`.`password`,`uc2_members`.`email`,`uc2_members`.`regip`,`uc2_members`.`regdate`,`uc2_members`.`salt`
FROM `uc2_members`;
replace INTO `cdb1_members` (`uid`,`username`,`password`,`gender`,`adminid`,`groupid`,`regip`,`regdate`,`lastip`,`lastvisit`,`lastactivity`,`lastpost`,`posts`,`oltime`,`pageviews`,`credits`,`extcredits1`,`extcredits2`,`extcredits6`,`extcredits7`,`extcredits8`,`email`,`bday`,`sigstatus`,`showemail`,`newsletter`,`timeoffset`,`editormode`,`customshow`)
SELECT `cdb2_members`.`uid`,`cdb2_members`.`username`,`cdb2_members`.`password`,`cdb2_members`.`gender`,`cdb2_members`.`adminid`,`cdb2_members`.`groupid`,`cdb2_members`.`regip`,`cdb2_members`.`regdate`,`cdb2_members`.`lastip`,`cdb2_members`.`lastvisit`,`cdb2_members`.`lastactivity`,`cdb2_members`.`lastpost`,`cdb2_members`.`posts`,`cdb2_members`.`oltime`,`cdb2_members`.`pageviews`,`cdb2_members`.`credits`,`cdb2_members`.`extcredits1`,`cdb2_members`.`extcredits2`,`cdb2_members`.`extcredits6`,`cdb2_members`.`extcredits7`,`cdb2_members`.`extcredits8`,`cdb2_members`.`email`,`cdb2_members`.`bday`,`cdb2_members`.`sigstatus`,`cdb2_members`.`showemail`,`cdb2_members`.`newsletter`,`cdb2_members`.`timeoffset`,`cdb2_members`.`editormode`,`cdb2_members`.`customshow`
FROM `cdb2_members`;
cdb_members中的extcredits字段是自定义的,请根据实际情况增删。经简单测试,cdb_members不更新并不影响登录,有兴趣做测试的朋友测试一下多给点反馈意见。
6.比较bak1中uc1_members、cdb1_members和bbs1中uc_members、cdb_members各字段的值除password外是否相同,如果相同,那么恭喜你距离成功只差一步了。
7.用bak1中uc1_members、cdb1_members替换bbs1中uc_members、cdb_members。登录测试,成功!
二、帖子数据。
1.首先要查一下bbs1中的一些值,包括fid、fup、tid、pid,假设四者的最大值分别为fid1、fup1、tid1、pid1,记录四个值。
2.将两个备份库中的表复制到一起,bbs1的表前缀重命名为cdb1,bbs2的表前缀重命名为cdb2。
3.升级版块相关id
UPDATE cdb2_forums SET fid=fid+fid1;
UPDATE cdb2_forums SET fup=fup+fup1;
UPDATE cdb2_threads SET fid=fid+fid1;
UPDATE cdb2_posts SET fid=fid+fid;
4.升级主题相关id
UPDATE cdb2_threads SET tid=tid+tid1;
UPDATE cdb2_posts SET tid=tid+tid1;
5.升级帖子相关id
UPDATE cdb2_posts SET pid=pid+pid1;
6.升级用户相关id,这里的x就是上面合并用户时记下的值
UPDATE cdb2_threads SET authorid=authorid+x;
UPDATE cdb2_posts SET authorid=authorid+x;
7.合并版块
replace INTO `cdb1_forums` (`fid`,`fup`,`type`,`name`,`status`,`displayorder`,`styleid`,`threads`,`posts`,`todayposts`,`lastpost`)
SELECT `cdb2_forums`.`fid`,`cdb2_forums`.`fup`,`cdb2_forums`.`type`,`cdb2_forums`.`name`,`cdb2_forums`.`status`,`cdb2_forums`.`displayorder`,`cdb2_forums`.`styleid`,`cdb2_forums`.`threads`,`cdb2_forums`.`posts`,`cdb2_forums`.`todayposts`,`cdb2_forums`.`lastpost`
FROM `cdb2_forums`;
8.合并主题
replace INTO `cdb1_threads` (`tid`,`fid`,`author`,`authorid`,`subject`,`dateline`,`lastposter`,`views`,`replies`)
SELECT `cdb2_threads`.`tid`,`cdb2_threads`.`fid`,`cdb2_threads`.`author`,`cdb2_threads`.`authorid`,`cdb2_threads`.`subject`,`cdb2_threads`.`dateline`,`cdb2_threads`.`lastposter`,`cdb2_threads`.`views`,`cdb2_threads`.`replies`
FROM `cdb2_threads`;
9.合并帖子
replace INTO `cdb1_posts` (`pid`,`fid`,`tid`,`first`,`author`,`authorid`,`subject`,`dateline`,`message`,`useip`,`invisible`,`anonymous`,`usesig`,`htmlon`,`bbcodeoff`,`smileyoff`,`parseurloff`,`attachment`,`rate`,`ratetimes`,`status`)
SELECT `cdb2_posts`.`pid`,`cdb2_posts`.`fid`,`cdb2_posts`.`tid`,`cdb2_posts`.`first`,`cdb2_posts`.`author`,`cdb2_posts`.`authorid`,`cdb2_posts`.`subject`,`cdb2_posts`.`dateline`,`cdb2_posts`.`message`,`cdb2_posts`.`useip`,`cdb2_posts`.`invisible`,`cdb2_posts`.`anonymous`,`cdb2_posts`.`usesig`,`cdb2_posts`.`htmlon`,`cdb2_posts`.`bbcodeoff`,`cdb2_posts`.`smileyoff`,`cdb2_posts`.`parseurloff`,`cdb2_posts`.`attachment`,`cdb2_posts`.`rate`,`cdb2_posts`.`ratetimes`,`cdb2_posts`.`status`
FROM `cdb2_posts`;
10.以上操作仅仅针对用户和帖子数据,其他数据并未合并,请参照上面的方法将其他需要合并的表一一改过。
11.新建一个论坛,然后用改过的表替换新建论坛中相应的表,登录测试有没有问题,然后到后台更新缓存,重建计数。OK!
本人不懂程序,我想如果写成程序来做应该要方便的多。如果有人有兴趣的话,可以参照方法写个程序出来方便大家。
特别强调:此操作非常危险,如非测试准确无误不可以用于使用中的论坛。因操作失误带来的损失本人不负责。
2008年6月19日,贵州省石阡县农业银行门口发生一起凶杀案:一名年仅17岁的少年被人用水果刀当街杀害。案发8分钟后,该县巡逻特警大队根据群众举报,在县城汽车站将犯罪嫌疑人当场抓获。
犯罪嫌疑人刘萧是一名年仅17岁的在校学生,他与同校一名16岁女孩任晓林谈恋爱后,任晓林迷上了当前正风靡网络的劲舞团游戏,还在游戏中结识了一名“超级舞王”,并与“舞王”在游戏里举办了婚礼。
刘萧很反感任晓林的网络爱情游戏,为此耿耿于怀,并千里跟踪任晓林和她的“游戏恋人”,由此上演了一场青春悲剧……
今年16岁的任晓林出生在贵州省石阡县城,父亲任远明在工商局任科长,母亲杨春丽是中医院的内科医生,姐姐任晓双比她大3岁,在贵阳医学院读书。
任晓林自小学习成绩优良,但中考前因生了一场病,使得考试时发挥失常,没有考入理想的学校。无奈之下,父亲托关系将她送到湖南省衡阳科技经贸学院计算机专业读5年制的大专(3年中专加两年大专)。原本就处在青春叛逆期,身边又少了父母监督,到外地上学后任晓林犹如脱了缰的野马尽情享受自由,有时还和同学在网吧过夜。不久,她就以学计算机为由,让父母汇钱为她买了一台6000多元的联想电脑。
2007年10月1日,国庆放假时,任晓林没有回家。通过同学介绍,她认识了同校学生刘萧。刘萧是湖南省凤凰县人,比任晓林大1岁,在该校电子专业读书,身高1.7米左右,脸庞棱角分明,身材清瘦。他的父亲早年病逝后,母亲在凤凰古镇上开了一间早餐店供养他和在外读大学的哥哥。10月3日,任晓林和另一个女同学应刘萧的邀请,一起去其老家凤凰古镇游玩了两天。返校后,刘萧和任晓林成了无话不说的朋友,并谈起了恋爱。
每天下课后,刘萧都要提前到教学楼前等任晓林一起去食堂吃饭。家庭经济条件不好的刘萧入学后每次在食堂打饭都是挑最便宜的菜买。两人恋爱后,任晓林每次都坚持为他买一份荤菜。
刘萧性格内向,没有什么朋友,平常只要一有空,他就喜欢和任晓林在一起。但任晓林却酷爱在宿舍里玩电脑上网,而且每次都玩得很投入,不喜欢别人打扰。因女生宿舍不让男生进出,刘萧就坐在宿舍大门旁一边看书一边等女友。
任晓林上网累了,就到楼下陪刘萧聊一会。但聊天时,刘萧发现,任晓林的手指总是不由自主地在腿上弹来弹去。刘萧好奇地问:“你条件反射啊?手指头离开了电脑还动来动去?”
任晓林爽朗地笑了起来:“你这个土老冒。我最近正在玩一种时尚网络游戏——劲舞团。要是你有台电脑,我就可以教你在网上一起玩了。”
刘萧既好奇又酸酸地问:“什么游戏能让你这么迷恋?连陪我的时间都没有?”
任晓林告诉他,韩国游戏劲舞团已成为全球排名第一的网络休闲游戏,高峰时有78万人同时在线。和那些打打杀杀的网络游戏不同,劲舞团以漂亮逼真的三维画面、可爱的人物造型、华丽的舞服、绚丽的舞步取胜。在游戏里,代表自己的人物角色可以穿着各种各样的衣服,在动感十足的音乐里随着手指操作电脑键盘而翩翩起舞。比如,敲动键盘上的A键,人物角色的左脚就抬一下,再敲一下H键,人物就抬一下右脚,依次类推,如果操作者的手指灵敏程度高,里面的人物就会相应做出许多很好看的舞蹈动作。“舞功”好的人,不仅能得到别人的尊敬,还有资格挑选异性舞伴谈恋爱,甚至结婚。
经济拮据的刘萧平时只能到学校外面的网吧上网,一个小时最少也要两块钱。他舍不得花钱,所以对网络游戏知之甚少。听女友说得手舞足蹈,他无法感同身受。但一听说还能和里面的网友恋爱结婚,他便不放心地问:“在游戏中结婚?你知道对方底细吗?”
任晓林狡黠地一笑:“如果想知道也很容易嘛,视频、见面都可以了解啊!”
听女友这么一说,刘萧的脸上露出了不悦之色,他拉着任晓林的手,急促地说:“你在网上玩游戏我不反对,但我反对你玩虚拟的爱情游戏。”
任晓林故意撅嘴说:“小气鬼,看把你紧张的。我只是玩游戏嘛,何必当真。”
当天下午下课后,刘萧就请了一个室友一起去网吧注册了游戏账号,进入了任晓林所提起的劲舞团华中区游戏区域。他对室友感叹,原以为这游戏就像QQ聊天一样,进入一个群里后,就能看到谁和谁在聊天,可他进入游戏后才发现,这个游戏挺复杂的,不把手指功夫练熟,根本就跟不上音乐的节奏指挥人物跳舞。室友看他被弄得头昏眼花,好意提醒他要耐心练习,不要急于求成。
网络婚礼轰轰烈烈 身后却有嫉妒双眼
2007年11月中旬的一天,刘萧和任晓林约会时,任晓林兴奋地告诉刘萧说:“有一个超级高手看我劲舞跳得好,竟然主动找我交朋友了。他的级别已经是超级舞王了,一般都是别人主动找他当教练,不知道有多少人都崇拜他的技艺!”
看女友抑制不住的喜悦,刘萧不由追问任晓林那个舞王究竟是谁,任晓林白了他一眼说:“大家都是游戏里的玩家,我怎么好意思问别人的身份。”
12月初,学校收打开水费的阿姨因事辞职,刘萧便接下了这份工作,每月可收入200元钱,使他的生活有所改善,他也能经常上网了。
2008年3月新学期开学后,刘萧每天在任晓林上网时,也约几个室友到外面网吧里上网。他在劲舞团中的账号名叫“爱情守望者”,而任晓林的游戏账号名则是“流浪的红舞鞋”。
一个星期后,在室友的耐心指导下,刘萧终于弄明白了这个游戏的玩法,他还经常查找到任晓林所在的舞房,隐身旁观任晓林和其他人PK舞蹈。任晓林在游戏里的装扮清纯迷人,而她身边始终有一个名叫“寂寞沙洲岭”的舞者如影随形。两人还经常组队搭档,PK掉其他小组搭档。
刘萧进入游戏后却并不怎么玩。别人看他级别低,也不主动找他玩。于是他就成了一个隐身看客。当他看到别人因为任晓林的舞跳得好,纷纷给她献花,有的甚至还走过去献吻时,心里很不是滋味,可又无可奈何。
不久,他和任晓林一起逛街时,任晓林问他:“你现在怎么回事?上学期还经常在我们宿舍外面等我,这学期你跑哪儿去了,弄得我们宿舍的女生还以为我们散伙了。”
刘萧赶紧解释说:“我除了兼职收开水费的工作,又在学校附近找了一份家教,每天下课后去给学生补课。”见女友没有再追问,刘萧又故意问道:“你最近那个游戏玩得如何,有多少超级粉丝了啊?”
任晓林一听,不无自豪地说:“我现在只要上去,就会收到很多粉丝送来的鲜花呢。”
2008年4月的一天下午,刘萧进入游戏后发现了一个令他惊讶无比的事情:任晓林竟然要和“寂寞沙洲岭”结婚了,而且他们还用小喇叭发出公告,请祝福他们的玩家届时到游戏中的“教堂”参加他们的婚礼。这个消息令刘萧很恼火,晚上上床后翻来覆去睡不着,满脑子都是另一个男生模糊的影子。他很想直接向女友挑明,阻止他们的婚礼,可又怕任晓林知道他一直在暗中监视她后勃然大怒。思来想去,刘萧决定先假装不知道这件事,但他的心情却一落千丈。
5月9日晚上,刘萧眼睁睁看着穿着洁白婚纱的“流浪的红舞鞋”和“寂寞沙洲岭”步入了“教堂”,两人不仅拥抱在一起,还陶醉地接吻!许多玩家都到场向他们祝福,献花献礼,最后还点燃了烟花将气氛推向高潮。
其实,任晓林和“寂寞沙洲岭”之所以在网上结婚,是因为他们在游戏中配合默契,获得大家极高的称赞。在大家的起哄中,加之“寂寞沙洲岭”的主动示好,任晓林怀着一种既好奇又不安的心情“嫁”给了这个男玩家。在网上,不知有多少女孩子都想主动“嫁”给他,而她获得了这个机会,这无疑极大地满足了一个正值花季少女的虚荣心,但另一方面,她想到曾答应过刘萧不与别人在游戏里恋爱结婚,心里又有些忐忑不安。最后她安慰自己:虚拟世界毕竟是假的,只要在现实生活中不做错事情就行了。
其实,任晓林有一件事一直没有告诉刘萧。经过多次交流,她意外得知这个游戏搭档的真名叫田伟,17岁,不仅和她同校,和刘萧还是同一专业不同班级的学生,只是平时两人往来甚少,见面打个招呼而已。田伟是石阡县汤山镇人,父母都是当地果农。两人在游戏中建立了亲密的关系后,还经常用QQ聊天。但考虑到男友的感受,任晓林一直没有告诉刘萧这些事,怕因此节外生枝,引起不必要的麻烦。但田伟却在得知任晓林是同专业同学刘萧的女友后,当即对任晓林表达了自己的失落。
举行了网络婚礼后,本来并不打算和田伟见面的任晓林,禁不住对方的诚恳请求,于5月15日下午悄悄在学校外面的餐馆里与田伟见了一面。
见面的瞬间,任晓林有些吃惊,田伟看上去只有1.65米左右,脸色非常差,说话都有些虚弱。
任晓林很关心地问:“你身体怎么了?我看你在网上很活跃啊。”
田伟叹了口气说:“在网上我只需动动手指就行了,别人当然看不出什么了!”
任晓林仔细询问才知道,田伟自从新学期开始后不久,就发现自己精神越来越差,还偶尔吐出血痰来。他悄悄去医院检查后得知,自己患上了由胃溃疡引起的慢性胃出血。由于母亲当时正患肝炎住院治疗,田伟不想让家里为难,只好悄悄忍了下来。可这种病导致他越来越瘦,气色越来越差。班主任曾问过他,都被他搪塞了过去。心情一直不好的田伟,只好将精神寄托到游戏中,每天室友出去谈恋爱时,他就借用室友的电脑玩会儿游戏,网络世界里别人对他的赞扬和追捧让他忘却了烦恼,心情变得舒畅许多。
“原来是这样。”任晓林听完后极为同情。当她得知这个病是慢性病,需要长期服药后,决定想办法帮帮他。可当时她每个月手上也只有父母寄来的生活费,实在拿不出钱来帮田伟看病。她便决定等这学期结束后,顺便让自己的母亲给他治一治。但任晓林当时没有将这些想法说出来,只是鼓励田伟一定要保重好身体。
5月18日,任晓林和田伟相约到学校外面的一家奶茶店里喝奶茶,聊得正火热时,恰好被出来上网的刘萧看到了。刘萧气坏了,因为自从任晓林举行网络婚礼后,他一直怀疑“寂寞沙洲岭”在私下里和女友联系,没想到,这个男生竟然是和自己同一个专业的同学田伟。
这个平时貌似老实的家伙原来一直在暗中和我抢女朋友!刘萧气愤之下想立即冲上去找田伟问个清楚,可看到周围有很多人,又怕这事传到老师和同学耳中,只好作罢。
第二天,刘萧将田伟叫到教室外面,盯着他问:“你什么时候背着我和任晓林好上的?”
田伟脸一红,立即否认说:“我和任晓林玩游戏之前互相并不认识,我们只是普通朋友关系,你千万别误会了。”
当时马上要上课了,刘萧只好丢下一句:“你最好不要和我抢,否则我不会放过你!”然后就进了教室。
下午下课后,刘萧本想再找田伟谈谈,让他立即退出,可四处找都没有找到他。最后他上网后发现,田伟和任晓林在游戏中玩得正高兴呢!他立即在游戏中用小喇叭对田伟恶语相向,其他网友见状,都纷纷出来指责刘萧。
任晓林并不知道是刘萧在攻击田伟,她也站在田伟一边数落刘萧,说他级别那么低,连给田伟提鞋都不配,简直是找死!最后,在众多玩家的一片指责中,刘萧只好退出了游戏。
当晚,刘萧在男生宿舍楼下和田伟单独见面了。他对田伟说:“我知道你的游戏玩得好,和任晓林在游戏里也很亲密,但那只是在网上,她并不爱你。请你以后不要和晓林一起玩了,好不好?”
田伟不高兴地说:“我劝你不要这么小气,否则让任晓林知道了,她会看不起你的。”
刘萧一听,心里确实有点担心,他焦急地说:“你别告诉晓林我找过你,我不想失去她。但我警告你,你们不要在现实中约会了,这是我的底线!否则,别怪我对你不客气!”
田伟想了想,答应了他。
任晓林对两个男生的约定毫不知情,贪玩又单纯的她整日陶醉在日趋熟练的舞步中。此后,她又几次约田伟出去聊天,但被田伟找借口拒绝了,任晓林也没有往深处想。
2008年6月16日,离学校期末考试还有两天。刘萧找到任晓林,约她考完试后一起去他的家乡玩几天,而这一提议,在他们开学之初刘萧也提出来过,任晓林也答应了。但任晓林想到之前决定让田伟去自己家让在中医院当主任的母亲给他治病,于是决定暂时不告诉刘萧,自己想悄悄将田伟带到家里让母亲看一下病。
考完试后,任晓林对刘萧说:“我姐姐在北京一个亲戚家里玩,想让我也一起过去玩几天。你先回去吧,等我从北京回来后,再去你家里找你。”
刘萧心里立即冒出一个念头来:“开学时本来答应说要到我老家玩的,怎么现在又变了?”
想到此,刘萧坐立不安,并且越来越猜疑女友的目的。于是,他告诉任晓林自己要回老家,可实际上,他却悄悄躲在同学在校外租的房子里,想看看任晓林究其去哪儿。
刘萧“走”后,任晓林心里也有些歉意,觉得这样做不太妥当,但她又觉得自己和田伟已经成了很好的朋友,他的样子实在可怜,自己应该帮帮他。之前,她已经给母亲打过电话,母亲同意了她的请求。
6月17日上午10点46分,任晓林和田伟从衡阳踏上了南京西站开往昆明途经贵阳的火车。在火车上,田伟觉得有点不好意思,几次都打了退堂鼓,不想去任晓林家,怕给任晓林的母亲添麻烦,可任晓林说:“你不要有顾虑,你的病不能拖了,再拖下去会很严重的。我妈妈说,趁着暑假给你多开一些中药,你拿回家慢慢熬着喝,会调养好的。”田伟拗不过任晓林,只得顺从她的意思。可令他和任晓林万万没想到的是,这件平常的小事却惹来了大祸。
他们上了8号车厢后,一直盯着二人行踪的刘萧随后就上了12号车厢。
6月18日上午10点左右,火车到达贵阳。当天下午,任晓林和田伟回到了距省城贵阳约320公里的石阡县。
而一路上心怀愤恨的刘萧一直在暗中悄悄跟着他们。到石阡县城后,刘萧找了一家旅馆住了下来。当天傍晚,刘萧还到一个商店里买了一把刀刃长约10CM的水果刀揣在身上。
6月19号早上,任晓林的母亲给田伟仔细检查后,发现他的病情比较严重,但可以通过中医治疗,调养恢复。检查完后,任晓林的母亲自己垫钱给田伟一次性开了200多元的中药,一共分成了50包,让田伟每包喝两天,全部喝完后,再给他邮寄。田伟为此感激不已:“阿姨,我以后一定会报答你们的!”
11点20分左右,任晓林陪着田伟从医院出来,田伟准备乘车回汤山镇的老家。一直在外等候的刘萧看到前面两人兴高采烈的样子时,心中的恼怒上升到了极点。
13时19分左右,当任晓林和田伟到县农业银行提款机前准备取钱时,刘萧再也忍不住了,他冲上前去,抓住田伟就打。田伟和任晓林顿时惊呆了。田伟一边躲避刘萧的拳头,一边大声辩解说:“刘萧,你别误会,我是来看病的!”
任晓林情急之下也不知该如何向男友解释,只好一边拉一边哀求说:“刘萧,我们真的没什么,你不要误会啊!”
可此时的刘萧哪里听得进去,他认为眼前这两个人是串通了来骗他的,而且看样子,任晓林肯定已经和田伟好上了,这无法让他忍受。他根本听不进两人的解释,继续像头发怒的狮子一般向田伟拳打脚踢。
打斗中,田伟下意识地进行抵挡,混乱中,田伟一拳头打在了刘萧的眼睛上。疼痛之下,刘萧已经失去了理智,他迅速从衣袋里摸出水果刀,朝田伟一阵乱捅。田伟一下子倒在地上。
这时,围观的人越来越多,刘萧慌乱中丢下刀子就跑。很快,石阡县“110”接到群众报警后,巡逻特警大队一中队立即赶赴现场处置。田伟被送往该县新华医院抢救后不久,就因流血过多死亡。
13时27分,仓皇逃窜的刘萧在石阡县城区河西大道汽车站路段被擒获。
面对警方的审讯,刘萧痛哭不已,嘴里反反复复地说道:“我不是故意的,我没想过要杀死他啊,我就是想教训他……”
6月29日,犯罪嫌疑人刘萧被正式批捕。目前,此案正在进一步审理中。
如今已经正式加盟的有四个论坛了,如果运气好能在十一期间把林大农大也弄来,那似乎一个简单的基础构建已经完成。
现在需要解决的问题是,uu计划执行了这么久,一直都没有一个正式的说明页,而论坛却已经有这么多了。那么在uu上是应该开始做一个Intro呢,还是直接改做Home。
DiyPage出新版了,可定制性很强,配合论坛的JS调用,可以做出一个相当不错的Home,然后再做一个Intro的独立页面,似乎就是一个很完美的方案。
现在手里缺美工,这个东西我自己学有点学不来,猪八戒上的任务也没了谱,如果到月底仍然找不到好的方案,就只能通过加钱延期来获得更好的稿件了。
看到这篇文章的时候,你肯定已经注意到了整个有道站点的变化了,在这里我和大家快速地介绍一下最主要的改版内容。在今后的几天内,我们将通过一系列文章,和大家一一详解有道的新变化。
也许你首先注意到的就是新的LOGO,以及主域名变成了youdao.com。新的有道LOGO融入了更多中国元素,变得更加好看了。新LOGO以及新域名背后的故事,我们另有文章和大家细述。
有道首页右上方的小提示相信也吸引了你的注意,新增的换肤功能可以让你的搜索界面更加生动漂亮。个性化首页提供了各种常用功能模块,定制一个会让你的首页更加实用。快去试试吧!
全新的热闻是本次改版重磅推出的新产品,热闻有什么不一样?你去看看就知道啦!稍后,我们的工程师也会来个深度揭秘:)
很多用户都非常关心有道词典的升级。事实上,我们也在很早前就开始为词典准备一周岁的生日礼物了。全新的界面,新增网络生词本和翻译功能,有道桌面词典2.0Beta今天终于和大家见面了。快去下载吧!
这次改版很多工程师已经加班加点多日了,所以先让他们休息一下吧,稍后会为大家详细介绍各部分改版背后的故事。
有道搜索改版啦!
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。如:
| JScript | VBScript | 匹配 |
|---|---|---|
| /^\[ \t]*$/ | “^\[ \t]*$” | 匹配一个空白行。 |
| /\d{2}-\d{5}/ | “\d{2}-\d{5}” | 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。 |
| /<(.*)>.*<\/\1>/ | “<(.*)>.*<\/\1>” | 匹配一个 HTML 标记。 |
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
| 字符 | 描述 |
|---|---|
| \ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,’n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\\’ 匹配 “\” 而 “\(” 则匹配 “(”。 |
| ^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 |
| $ | 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。 |
| * | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |
| + | 匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |
| ? | 匹配前面的子表达式零次或一次。例如,”do(es)?” 可以匹配 “do” 或 “does” 中的”do” 。? 等价于 {0,1}。 |
| {n} | n 是一个非负整数。匹配确定的 n 次。例如,’o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。 |
| {n,} | n 是一个非负整数。至少匹配n 次。例如,’o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o。’o{1,}’ 等价于 ‘o+’。’o{0,}’ 则等价于 ‘o*’。 |
| {n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}” 将匹配 “fooooood” 中的前三个 o。’o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。 |
| ? | 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 “oooo”,’o+?’ 将匹配单个 “o”,而 ‘o+’ 将匹配所有 ‘o’。 |
| . | 匹配除 “\n” 之外的任何单个字符。要匹配包括 ‘\n’ 在内的任何字符,请使用象 ‘[.\n]‘ 的模式。 |
| (pattern) | 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 ‘\(’ 或 ‘\)’。 |
| (?:pattern) | 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。 |
| (?=pattern) | 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000″ 中的 “Windows” ,但不能匹配 “Windows 3.1″ 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
| (?!pattern) | 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如’Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1″ 中的 “Windows”,但不能匹配 “Windows 2000″ 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 |
| x|y | 匹配 x 或 y。例如,’z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。 |
| [xyz] | 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]‘ 可以匹配 “plain” 中的 ‘a’。 |
| [^xyz] | 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]‘ 可以匹配 “plain” 中的’p'。 |
| [a-z] | 字符范围。匹配指定范围内的任意字符。例如,’[a-z]‘ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。 |
| [^a-z] | 负值字符范围。匹配任何不在指定范围内的任意字符。例如,’[^a-z]‘ 可以匹配任何不在 ‘a’ 到 ‘z’ 范围内的任意字符。 |
| \b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。 |
| \B | 匹配非单词边界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。 |
| \cx | 匹配由 x 指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 ‘c’ 字符。 |
| \d | 匹配一个数字字符。等价于 [0-9]。 |
| \D | 匹配一个非数字字符。等价于 [^0-9]。 |
| \f | 匹配一个换页符。等价于 \x0c 和 \cL。 |
| \n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
| \r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。 |
| \S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 |
| \t | 匹配一个制表符。等价于 \x09 和 \cI。 |
| \v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
| \w | 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]‘。 |
| \W | 匹配任何非单词字符。等价于 ‘[^A-Za-z0-9_]‘。 |
| \xn | 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,’\x41′ 匹配 “A”。’\x041′ 则等价于 ‘\x04′ & “1″。正则表达式中可以使用 ASCII 编码。. |
| \num | 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,’(.)\1′ 匹配两个连续的相同字符。 |
| \n | 标识一个八进制转义值或一个向后引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。 |
| \nm | 标识一个八进制转义值或一个向后引用。如果 \nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。 |
| \nml | 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。 |
| \un | 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如, \u00A9 匹配版权符号 (©)。 |
下面看几个例子:
“^The”:表示所有以”The”开始的字符串(”There”,”The cat”等);
“of despair$”:表示所以以”of despair”结尾的字符串;
“^abc$”:表示开始和结尾都是”abc”的字符串——呵呵,只有”abc”自己了;
“notice”:表示任何包含”notice”的字符串。
‘*’,’+'和’?'这三个符号,表示一个或一序列字符重复出现的次数。它们分别表示“没有或
更多”,“一次或更多”还有“没有或一次”。下面是几个例子:
“ab*”:表示一个字符串有一个a后面跟着零个或若干个b。(”a”, “ab”, “abbb”,……);
“ab+”:表示一个字符串有一个a后面跟着至少一个b或者更多;
“ab?”:表示一个字符串有一个a后面跟着零个或者一个b;
“a?b+$”:表示在字符串的末尾有零个或一个a跟着一个或几个b。
也可以使用范围,用大括号括起,用以表示重复次数的范围。
“ab{2}”:表示一个字符串有一个a跟着2个b(”abb”);
“ab{2,}”:表示一个字符串有一个a跟着至少2个b;
“ab{3,5}”:表示一个字符串有一个a跟着3到5个b。
请注意,你必须指定范围的下限(如:”{0,2}”而不是”{,2}”)。还有,你可能注意到了,’*',’+'和
‘?’相当于”{0,}”,”{1,}”和”{0,1}”。
还有一个’¦’,表示“或”操作:
“hi¦hello”:表示一个字符串里有”hi”或者”hello”;
“(b¦cd)ef”:表示”bef”或”cdef”;
“(a¦b)*c”:表示一串”a”"b”混合的字符串后面跟一个”c”;
‘.’可以替代任何字符:
“a.[0-9]“:表示一个字符串有一个”a”后面跟着一个任意字符和一个数字;
“^.{3}$”:表示有任意三个字符的字符串(长度为3个字符);
方括号表示某些字符允许在一个字符串中的某一特定位置出现:
“[ab]“:表示一个字符串有一个”a”或”b”(相当于”a¦b”);
“[a-d]“:表示一个字符串包含小写的’a'到’d'中的一个(相当于”a¦b¦c¦d”或者”[abcd]“);
“^[a-zA-Z]“:表示一个以字母开头的字符串;
“[0-9]%”:表示一个百分号前有一位的数字;
“,[a-zA-Z0-9]$”:表示一个字符串以一个逗号后面跟着一个字母或数字结束。
你也可以在方括号里用’^'表示不希望出现的字符,’^'应在方括号里的第一位。(如:”%[^a-zA-Z]%”表
示两个百分号中不应该出现字母)。
为了逐字表达,必须在”^.$()¦*+?{\”这些字符前加上转移字符’\'。
请注意在方括号中,不需要转义字符。