短網址流行已經有一段時間了,尤其是在新浪微博上更是頻繁出現,但應該很多人都不知道這個東東是怎么實現的,其實短網址也挺容易的。下面我們對于生成短網址的思路以及使用php生成短網址的實現方法描述一下。
生成短網址的思路:如果把短網址還原了,你知道是個什么樣子的嗎?可能你看到新浪微博應用里面的短網址都是這個樣子:
http://t.cn/RzddsXt
其實他還原了說不定就是這個樣子:
http://t.cn/link.php?url=//www.49028c.com/
按這個格式可以知道這個短網址其實是通過link.php這個頁面做了處理,那么如何將
http://t.cn/link.php?url=//www.49028c.com/
縮成
http://t.cn/RzddsXt
這個地方需要用到url重寫,按照本例則可以這么重寫:
RewriteEngine OnRewriteBase /RewriteRule ^/(.*)$ link.php?url=$1[L]
這里就實現了將 http://t.cn/link.php?url=RzddsXt 轉換為了 http://t.cn/RzddsXt ,縮短了不少,那么如何通過 RzddsXt 去查找到 //www.49028c.com/ 這個網址并跳到這個網址上去呢?這里就用到了一個類似加密的算法了,通過算法將所有的長網址縮短成一個對應的5-6位的并且唯一字符串,并將這個對應關系存入到數據庫中去。結合本例就是根據傳入的參數 RzddsXt 到數據庫中去找對應的網址,找到了就 header 跳轉過去。
ok,至于生成短網址的思路就是這個樣子的了。
下面分享一下通過php生成短網址的那個過程(這里將長網址生成短至5-6位字符長度并且還需要是唯一的):
<?phpfunction 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);}?>
比如:
echo shorturl('//www.49028c.com/');
將生成的一個唯一對應碼為 S54Aq ,OK,至于如何去做 url重寫和數據庫存儲這里就不多寫了,自己根據自己的情況來吧。
PS:這里為大家推薦一款本站短網址生成工具(也是使用的第三方API接口生成的短網址)
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答
圖片精選