長網址變短網址的實現方法
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