长网址变短网址的实现方法

长网址变短网址的实现方法

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

原文地址:https://www.cnblogs.com/ccw869476711/p/11578116.html