PHP生成短網址的思路以及實現方法的詳解

今天小編就爲大家分享一篇關於PHP生成短網址的思路以及實現方法的詳解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

短網址流行已經有一段時間了,尤其是在新浪微博上更是頻繁出現,但應該很多人都不知道這個東東是怎麼實現的,其實短網址也挺容易的。下面我們對於生成短網址的思路以及使用php生成短網址的實現方法描述一下。

生成短網址的思路:如果把短網址還原了,你知道是個什麼樣子的嗎?可能你看到新浪微博應用裏面的短網址都是這個樣子:

http://t.cn/RzddsXt

其實他還原了說不定就是這個樣子:

http://t.cn/link.php?url=//www.jb51.net/

按這個格式可以知道這個短網址其實是通過link.php這個頁面做了處理,那麼如何將

http://t.cn/link.php?url=//www.jb51.net/

縮成

http://t.cn/RzddsXt

這個地方需要用到url重寫,按照本例則可以這麼重寫:

RewriteEngine On
RewriteBase /
RewriteRule ^/(.*)$ link.php?url=$1[L]

這裏就實現了將 http://t.cn/link.php?url=RzddsXt 轉換爲了 http://t.cn/RzddsXt ,縮短了不少,那麼如何通過 RzddsXt 去查找到 //www.jb51.net/ 這個網址並跳到這個網址上去呢?這裏就用到了一個類似加密的算法了,通過算法將所有的長網址縮短成一個對應的5-6位的並且唯一字符串,並將這個對應關係存入到數據庫中去。結合本例就是根據傳入的參數 RzddsXt 到數據庫中去找對應的網址,找到了就 header 跳轉過去。

ok,至於生成短網址的思路就是這個樣子的了。

下面分享一下通過php生成短網址的那個過程(這裏將長網址生成短至5-6位字符長度並且還需要是唯一的):

<?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);
}
?>

比如:

echo shorturl('//www.jb51.net/');

將生成的一個唯一對應碼爲 S54Aq ,OK,至於如何去做 url重寫和數據庫存儲這裏就不多寫了,自己根據自己的情況來吧。

PS:這裏爲大家推薦一款本站短網址生成工具(也是使用的第三方API接口生成的短網址)

短鏈(短網址)在線生成工具:

http://tools.jb51.net/password/dwzcreate

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章