长网址变短网址的实现方法
1.百度短网址(https://dwz.cn/console/apidoc)
1 php 2 $host = 'https://dwz.cn'; 3 $path = '/admin/v2/create'; 4 $url = $host . $path; 5 $method = 'POST'; 6 $content_type = 'application/json'; 7 8 // TODO: 设置Token 9 $token = '你的Token'; 10 11 // TODO:设置待注册长网址 12 $bodys = array('Url'=>'你的长网址', 'TermOfValidity'=>'有效期'); 13 14 // 配置headers 15 $headers = array('Content-Type:'.$content_type, 'Token:'.$token); 16 17 // 创建连接 18 $curl = curl_init($url); 19 curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); 20 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 21 curl_setopt($curl, CURLOPT_FAILONERROR, false); 22 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 23 curl_setopt($curl, CURLOPT_HEADER, false); 24 curl_setopt($curl, CURLOPT_POST, true); 25 curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($bodys)); 26 27 // 发送请求 28 $response = curl_exec($curl); 29 curl_close($curl); 30 31 // 读取响应 32 var_dump($response); 33
2.新浪短网址(http://dwz.wailian.work/)
实现原理:
3.985短网址(https://www.985.so)
在存放这个URL的数据方面,我个人推荐TTServer,有的朋友可以没有听说过,下面是这个数据库的介绍:
Tokyo Cabinet 是日本人 Mikio Hirabayashi(平林幹雄)のページ 开发的一款DBM数据库(注:大名鼎鼎的DBM数据库qdbm就是他开发的),该数据库读写非常快。insert:0.4sec/1000000 recordes(2500000qps),写入100万数据只需要0.4秒。search:0.33sec/1000000 recordes (3000000 qps),读取100万数据只需要0.33秒。
可以看到对于字典类型的数据Key/Value的查询,这个数据库可以说是我目前见过效率非常高的,况且他如此的小巧,用来对short url/long url的配对再好不过。
该系统使用6个短码字符来表示任何长度的网址。 有效的字符代码是ASCII 'A'到'Z'和'0'的'5',其中每个字符包含2 ^ 5(32)状态。 6短码字符可用于绘制32 ^ 6(1073741824)的网址
资料来源:百度短网址生成接口https://dwz.cn/console/apidoc
https://blog.csdn.net/libertea/article/details/7384557
https://blog.csdn.net/MiMicoa/article/details/79834242