2010年12月

discuz的在线中文分词服务

中文分词越来越收到重视,可是如何去收集一个庞大的词库呢?又如何能够通过词库做好合理的中文分词呢?这些问题困扰着我们很长时间了。现在我来提供一个简单的分词方法,不需要提供词库就可以进行分词。还可以转编码呢?呵呵

http://keyword.discuz.com/related_kw.html?title=你的标题&content=你的内容&ics=输入时的编码&ocs=输出时的编码。

例子:
http://keyword.discuz.com/related_kw.html?title=discuz的在线中文分词服务

就会返回一个XML,默认编码为GB2312.里面会拆分为 discuz、在线、中文三个词
这样只需要解析这个XML,就可以拿到拆分后的分词了,是不是很简单啊?呵呵。

CentOS下用rsync实现双机增量备份(非实时)

CentOS下用rsync实现双机增量备份(非实时)
首先很悲剧的说.并不是实时的备份.实时的备份研究了很久均没有成功.尽管网上教程一堆……可是对于我这个菜鸟来说太难了……
好了.实现的功能是手动利用rsync增量备份另外一个VPS的网站数据到本地的VPS上.实现了这个可以利用crontab来定时增量备份的.

-------
rysnc 是一个数据镜像及备份工具.具有可使本地和远程两台主机的文件.目录之间.快速同步镜像.远程数据备份等功能.在同步过程中.rsync是根据自己独特的算法.只同步有变化的文件.甚至在一个文件里只同步有变化的部分.所以可以实现快速的同步数据的功能.
下面所讲的简单的rsync同步方法.依赖于SSH服务.一般rsync.ssh软件包都会默认安装的.检查方法:rpm -qa|grep -i rsync

- 阅读剩余部分 -

CentOS下安装crontab及使用方法详解

CentOS下安装crontab及使用方法详解
安装crontab:
yum install crontabs

说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status

手动启动crontab服务:service crond start

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动:
chkconfig --level 35 crond on

- 阅读剩余部分 -

Linux Crontab定时使用方法+实例

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start

- 阅读剩余部分 -

Vi编辑器的基本使用方法

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1、vi的基本概念
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

1) 命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

- 阅读剩余部分 -

破解Base64多重加密的PHP脚本

最近在帮我母校的小盆友们做一个“影评协会”的网站,根据他们的需求,我最后决定再次开始折腾WordPress。要知道和客户讲清楚一些技术性较强的事情是很困难的(比如“网站的内容结构和呈现外观是相互独立的”),不过经过初步的沟通,也最终大概有了一个思路。显然,根据他们的要求,一个简单的、只有日志列表的WordPress主题肯定是不够的。我需要一个内容丰富、灵活性强的主题。于是我在网上找到了一个专门定制收费WordPress主题的网站WooThemes。说实话他们的主题都很不错,但是要收费的,价格还挺高。不过这难不倒我,一番邪恶的搜索之后便下载到了一些“别有用心人士”免费提供的版本。解开一看,模板的footer.php文件居然为了“保护版权”而是用的加密。显然,所谓的“版权”估计就是页面底部的“Theme by WooThemes”之类的话吧。唉,这样加密来加密去,岂不是和PHP的开源精神背道而驰?再说我邪恶一下就邪恶到底吧,破解之!

- 阅读剩余部分 -

base64加密PHP脚本的解码方法

PHP是网站服务端最流行的编程语言之一。PHP运行环境本身是开源的,服务器不加载插件时PHP脚本也无法加密。但是,总有人因为商业上的考虑,而将PHP程序通过各种方法进行混淆,使读者很难看到清晰易懂的代码。

然而,PHP运行环境的本质决定了,被混淆、编码的PHP脚本总是有办法恢复成可读的代码的。本文介绍了一种对含有eval和base64_decode的、被加密的PHP的解码方法。

- 阅读剩余部分 -

一个footer.php的解密

白粉仔昨晚发了个主题过来

说footer.php加密了.

代码如下:

<?php /* WARNING: This file is protected by woothemes and is subject to copyright law. */<br />
$o="QAAADjs4d293J25hJy8nJm50WABFb2hqYi8uJyEhAOJ3ZmAA5C8BwAAAZmRzbnFiWHRuY2JlZnUvNQWALid7eycBjzQBjwMCMy4uJy4nPQAAJygoJ0NoaSBzJ3RvaHAnaAAIaSdzb2InYXVoaXMnBwEnODkQAAoNJwAQOyYqKidFaHNzaGonACBQbmNgYnN0JyoqAdAOO2NucQAGJ2RrZnR0OiVlaH8xJQFRAWpzAwNodyU5OygCgAG+dHdmZGJ1AzEGQMOAADYFOWRoazQCDQKRErNjfmlmam5kp70QeDwLMA4OAiEARAwDANQnCHUBBQCBDcEoBoH/Dw0jATEARQivBPsCgQivGRE0LjwnCL8DAQBFCL81eicnCL8C5ScIvScXMHMRrwRAJFIRrTMJDyf8QAzLCQ8EwB9wEb8JQjtldR91YW5/JSco+m8d0x53A7EeAxWDDiFaZWgL0Ac1DgCXA2EkcQNDwQQGoRYDYmljbmEd0QoNCg0OEoEnQQYPaGhzYnUCkwXDbmM6JWEBYhGZE6kFsd/wAckGEmMsJyrKAdEARQRZDWMEfQKhAmlhayU5AQAhZGh3fjwnDDRkb2gnY2ZzYgkALyBeIBjwODkBlGVraGBuaWFoVAAvAVMqAXRYApBXaHBidWJjJ2V+EEAgK3ANoG9iamJ0AnM7ZidvdWIAAGE6JW9zc3c9KChwcHApcGgAAnVjd3VidHQpaHVgJTlQAPU7DwAoZjkpFlUAAAAnC1o40EhxYnVCZnR+wMAIeAf/JyFpZXR3DbAIbylwbmRsYiwQYyoI1ipFUAtwKWRoaihFYSg0KCUAmzlXdWJqbnJqRxFqYgoBCfUOABAJOv3/JeBD+CLGFwEARSEBKBlzIQMBlQCBBNknegHRAEEHpvj/AJcocSSjBQZZ5HB3WAGTGuMo8QN1CGIOEQNDAbEgkAoNH8Mjc3BucyrhOidTwFhod3MC2W5oaS8lcFSyWAHUAOMlHfIDlW5hYNCBFgPlXCBydGJ1TzBiIFpb8HxGEAKAdAAAZHVud3Mnc353Yjolc2J/cwQeKG1mcWYBYyUndHVkIjYGhBiSAkd0QO8oKBFgYnUpbXRakQOjPPA7AKMFrwcBBa/CQA3wBaJ0c2ZzCoB0KABQdVhzbmpiBZhrbmliKBCTYjBRDQ8gWj3BCBBoaTgAUGRma2tlZmRsOgr0RAEENSFmagCAdzxkaHJpczoE33VcIGlyamU7BGJ1BLMMm1EyehLyExAoZWhjfg4BKG8QAHNqawCQ";eval(base64_decode("JGxsbD0wO2V2YWwoYmFzZTY0X2RlY29kZSgiSkd4c2JHeHNiR3hzYkd4c1BTZGlZWE5sTmpSZlpHVmpiMlJsSnpzPSIpKTskbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd3OUoyOXlaQ2M3IikpOyRsbGxsPTA7JGxsbGxsPTM7ZXZhbCgkbGxsbGxsbGxsbGwoIkpHdzlKR3hzYkd4c2JHeHNiR3hzS0NSdktUcz0iKSk7JGxsbGxsbGw9MDskbGxsbGxsPSgkbGxsbGxsbGxsbCgkbFsxXSk8PDgpKyRsbGxsbGxsbGxsKCRsWzJdKTtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JHdzlKM04wY214bGJpYzciKSk7JGxsbGxsbGxsbD0xNjskbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGxsbGxsbGwoJGwpOyl7aWYoJGxsbGxsbGxsbD09MCl7JGxsbGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsbGxsbCs9JGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTskbGxsbGxsbGxsPTE2O31pZigkbGxsbGxsJjB4ODAwMCl7JGxsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8NCk7JGxsbCs9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbF0pPj40KTtpZigkbGxsKXskbGw9KCRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSkmMHgwZikrMztmb3IoJGxsbGw9MDskbGxsbDwkbGw7JGxsbGwrKykkbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGxdPSRsbGxsbGxsbFskbGxsbGxsbC0kbGxsKyRsbGxsXTskbGxsbGxsbCs9JGxsO31lbHNleyRsbD0oJGxsbGxsbGxsbGwoJGxbJGxsbGxsKytdKTw8OCk7JGxsKz0kbGxsbGxsbGxsbCgkbFskbGxsbGwrK10pKzE2O2ZvcigkbGxsbD0wOyRsbGxsPCRsbDskbGxsbGxsbGxbJGxsbGxsbGwrJGxsbGwrK109JGxsbGxsbGxsbGwoJGxbJGxsbGxsXSkpOyRsbGxsbCsrOyRsbGxsbGxsKz0kbGw7fX1lbHNlJGxsbGxsbGxsWyRsbGxsbGxsKytdPSRsbGxsbGxsbGxsKCRsWyRsbGxsbCsrXSk7JGxsbGxsbDw8PTE7JGxsbGxsbGxsbC0tO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkd4c2JEMG5ZMmh5SnpzPSIpKTskbGxsbGw9MDtldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkQwaVB5SXVKR3hzYkd4c2JHeHNiR3hzYkNnMk1pazciKSk7JGxsbGxsbGxsbGw9IiI7Zm9yKDskbGxsbGw8JGxsbGxsbGw7KXskbGxsbGxsbGxsbC49JGxsbGxsbGxsbGxsbCgkbGxsbGxsbGxbJGxsbGxsKytdXjB4MDcpO31ldmFsKCRsbGxsbGxsbGxsbCgiSkd4c2JHeHNiR3hzYkM0OUpHeHNiR3hzYkd4c2JHd3VKR3hzYkd4c2JHeHNiR3hzYkNnMk1Da3VJajhpT3c9PSIpKTtldmFsKCRsbGxsbGxsbGwpOw=="));return;?>


用DW打开,一看,又是base64_decode解码,根据WordPress主题的解密过程,用echo htmlspecialchars替换里边的eval,在浏览器执行,得到如下代码.

- 阅读剩余部分 -

meiyoutongji