一直在想做点什么有意思的东西好,于是加入网址缩短服务的大潮,难得自己有个把够短的域名。现在基本服务已经完成,可惜还是基于MySQL的,等把TokyoCabinet研究清楚了,再升级好了。现在已经支持Ajax创建接口,不过还不支持历史追踪。
目前使用的算法能把网址缩短到域名后六个字节,核心部分使用到md5和base64技术。基本来说就是这样两句:
$key = substr(base64_encode(md5($url, true)), 0, 6);
$key = str_replace(array(‘+’,’/’,’=’), array(‘-‘,’_’,”), $key);
第二句是为了把URL中需要被再次编码的+和/替换成-和_,而=一般只会出现在末尾,去掉它。
最后,配置好服务器的rewrite就OK了。
用http://rek.me/<YOUR URL>创建一个短网址,比如http://rek.me/http://guangxin.name,创建出来的shorten就像这样:http://rek.me/PFqVsv
一条评论
不错的东西