分类: 系统运维
2009-11-10 01:07:31
现在提供Short Url(短网址)的网站越来越多了,特别是Twitter的助Short Url的一臂之力,越来越多的人开始使用Short Url-短网址,现在比较流行的几个Short Url网站有
TinyURL
Bit.Ly
Is.Gd
等等,Short Url的作用在于把长的Url缩成短的Url,比如,我前两天些的一篇博客,Url是 http-get-chinese-encode-error.html,我们采用TinyURL,转成的Url是 /d4zw8x,只有25个字符,短了很多,请求/d4zw8x的时候,tinyurl会把请求通过HTTP 301转到http-get-chinese-encode-error.html上。
实现Short Url的功能并不复杂,但最关键的就是这个短代码要够短,而且需要唯一,我们的例子是“d4zw8x”,6位,还有就是用户输入的同一个Url,应该返回 唯一的Short Url,用户在请求长的Url之后,先从数据库查找一下这个长Url是否存在,如果存在,就直接取出其对应的短代码,如果不存在,则生成短代码,与用户的 长Url同时保存在数据库中。
最核心的这个短代码的实现方式,我在网上找了两个
第一个是纯随机数的算法,来自
1 | function random($length, $pool = '') |
另一个算法来自
1 | function shorturl($input) { |
其返回的是一个4个元素的数组,应为存在可能的重复性,你可以依次使用这4个元素。
Short Url的算法应该还有一些,Short Url网站的作用除了缩短网址以外,在使用者不断增加之后,可以积累庞大的网址信息,这对统计分析是很有用的。