教大家如何设计实现自己的PHP短网址服务

PHP短网址服务设计分三个过程,搞明白了就可以自己设计实现它。


1.根据原始网址生成短网址
这个有现成的算法可以用,该算法的原则:同一个网址生成的短网址应相同,而不是随机
生成。
PHP版的短网址生成函数:
function code62($x) {
$show = '';
while($x > 0) {
$s = $x % 62;
if ($s > 35) {
$s = chr($s+61);
} elseif ($s > 9 && $s <=35) {
$s = chr($s + 55);
}
$show .= $s;
$x = floor($x/62);
}
return $show;
}
function shorturl($url) {
$url = crc32($url);
$result = sprintf("%u", $url);
return code62($result);
}


用的时候调用函数shorturl即可返回一个长度为6的由字母和数字组成的字符串。
函数code62中62的含义是:长度为6的字符串的每一位都有62个可能性,即26个英文字
母大小写加10个数字,所以可服务的网址数为62的6次方。


2.存储短网址及原始网址
这个需要用到数据库,理想的是key-value型的,如MongoDB,SAE的KV-DB等。当然SQL数据
库也是可以的,存储时要注意短网址和原网址的一一对应关系。


3.当用户短网址时获取其原始网址并跳转
这一步只需根据请求查询数据库并得到原始网址,接下来只需用header跳转下就好了。
由于短网址的格式为: http://t.a.com/vB4cFp ,所以要用到Url重写,Apache的话
在.htacess中配置,nginx的话不同的操作系统的配置文件位置不同,SAE的话

是config.yaml 。


本文出自 “清源教育” 博客,转载请注明此处,谢谢!更多php技术问题欢迎加群探讨:256271784,验证码:csl,不写验证不予通过哟~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值