php生成短網址的思路與方法(推薦)

生成短網址的思路以及使用php生成短網址的實現方法。

生成短網址的思路:如果把短網址還原了,你知道是個什麼樣子的嗎?比如:
http://www.jbxue.com/sitejs-17300-1.html
對於以上這個鏈接,除了直接打開之外,還有一種方法打開它,如下:
http://www. jbxue.com/link.php?url=http://www.jbxue.com/sitejs-17300-1.html
好了,短網址還原了實際就是這個樣子的了,可能你看到新浪微博應用裏面的短網址都是這個樣子:
http://t.cn/zHEYrvV
其實他還原了說不定就是這個樣子:
http://t.cn/link.php?url=http://www.jbxue.com/sitejs-17300-1.html
好了,這裏就說到第二步了,如何將
http://t.cn/link.php?url=http://www.jbxue.com/sitejs-17300-1.html
縮成
http://t.cn/zHEYrvV
這個地方需要用到url重寫,按照本例則可以這麼重寫:
RewriteEngine On 
RewriteBase / 
RewriteRule ^/(.*)$ link.php?url=$1[L] 
這裏就實現了將 http://t.cn/link.php?url=zHEYrvV 轉換爲了 http://t.cn/zHEYrvV ,縮短了不少,那麼如何通過 zHEYrvV 去查找到 http://www.jbxue.com/sitejs-17300-1.html 這個網址並跳到這個網址上去呢?這裏就用到了一個類似加密的算法了,通過算法將所有的長網址縮短成一個對應的5-6位的並且唯一字符串,並將這個對應關係存入到數據庫中去。結合本例就是根據傳入的參數 zHEYrvV 到數據庫中去找對應的網址,找到了就 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; 
} // www.jbxue.com
function shorturl($url){ 
$url=crc32($url); 
$result=sprintf("%u",$url); 
return code62($result); 
} 
複製代碼

比如

echo shorturl('http://www.jbxue.com/'); 
將生成的一個唯一對應碼爲 n2Q8e 。

參考文章:

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