> 5; } $short_url_list[] = $short_url; } return $short_url_list; } } $url = http://www.bbs.it-home.org/jb//; $short = short_url::short($url); print_r($short); ?>
复制代码
输出结果:array ( [0] => http://t.cn/kyflyh [1] => http://t.cn/bpafhs [2] => http://t.cn/h880ad [3] => http://t.cn/tmvdk0 )
生成的短url存到服务器里,做一个映射,short_url => original_url,输入短url的时候按照映射转回长url,然后访问原始url即可。
代码:
复制代码
调用示例:
复制代码
以上代码适用于:自增id的传统关系型数据库。需要执行二次sql,第一次获取自增id,第二次根据id生成短链接。[或者3次,额外一次用于判断是否存在此短链接。]
此外,还有一种是根据url进行hash运算的算法,这种算法的优点: 1,无需id,用key/value这样的格式即可满足存储。 2,sql插入只需一条语句。 3,生成的数据具有离散性,无法观察生成规律。
缺点: 1,所以的hash算法都存在冲突的可能,一旦冲突原始的就会被覆盖。[当然你可以增加额外的逻辑去判断。] 2,数据规模不好控制,你不知道什么时候才能开始使用新的hash数据位,但随着数据量的增加,冲突的概率会越来越高。 此种的代码适用于nosql等非关系型数据库,查找快更新快。
