PHP生成短網(wǎng)址的思路以及實(shí)現(xiàn)方法的詳解
短網(wǎng)址流行已經(jīng)有一段時(shí)間了,尤其是在新浪微博上更是頻繁出現(xiàn),但應(yīng)該很多人都不知道這個(gè)東東是怎么實(shí)現(xiàn)的,其實(shí)短網(wǎng)址也挺容易的。下面我們對(duì)于生成短網(wǎng)址的思路以及使用php生成短網(wǎng)址的實(shí)現(xiàn)方法描述一下。
生成短網(wǎng)址的思路:如果把短網(wǎng)址還原了,你知道是個(gè)什么樣子的嗎?可能你看到新浪微博應(yīng)用里面的短網(wǎng)址都是這個(gè)樣子:
其實(shí)他還原了說不定就是這個(gè)樣子:
http://t.cn/link.php?url=//www.dbjr.com.cn/
按這個(gè)格式可以知道這個(gè)短網(wǎng)址其實(shí)是通過link.php這個(gè)頁面做了處理,那么如何將
http://t.cn/link.php?url=//www.dbjr.com.cn/
縮成
這個(gè)地方需要用到url重寫,按照本例則可以這么重寫:
RewriteEngine On RewriteBase / RewriteRule ^/(.*)$ link.php?url=$1[L]
這里就實(shí)現(xiàn)了將 http://t.cn/link.php?url=RzddsXt 轉(zhuǎn)換為了 http://t.cn/RzddsXt ,縮短了不少,那么如何通過 RzddsXt 去查找到 //www.dbjr.com.cn/ 這個(gè)網(wǎng)址并跳到這個(gè)網(wǎng)址上去呢?這里就用到了一個(gè)類似加密的算法了,通過算法將所有的長網(wǎng)址縮短成一個(gè)對(duì)應(yīng)的5-6位的并且唯一字符串,并將這個(gè)對(duì)應(yīng)關(guān)系存入到數(shù)據(jù)庫中去。結(jié)合本例就是根據(jù)傳入的參數(shù) RzddsXt 到數(shù)據(jù)庫中去找對(duì)應(yīng)的網(wǎng)址,找到了就 header 跳轉(zhuǎn)過去。
ok,至于生成短網(wǎng)址的思路就是這個(gè)樣子的了。
下面分享一下通過php生成短網(wǎng)址的那個(gè)過程(這里將長網(wǎng)址生成短至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.dbjr.com.cn/');
將生成的一個(gè)唯一對(duì)應(yīng)碼為 S54Aq ,OK,至于如何去做 url重寫和數(shù)據(jù)庫存儲(chǔ)這里就不多寫了,自己根據(jù)自己的情況來吧。
PS:這里為大家推薦一款本站短網(wǎng)址生成工具(也是使用的第三方API接口生成的短網(wǎng)址)
短鏈(短網(wǎng)址)在線生成工具:
http://tools.jb51.net/password/dwzcreate
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- 一個(gè)php短網(wǎng)址的生成代碼(仿微博短網(wǎng)址)
- PHP生成短網(wǎng)址的3種方法代碼實(shí)例
- php簡單實(shí)現(xiàn)短網(wǎng)址(短鏈)還原的方法(測試可用)
- PHP生成短網(wǎng)址方法匯總
- PHP將URL轉(zhuǎn)換成短網(wǎng)址的算法分享
- PHP長網(wǎng)址與短網(wǎng)址的實(shí)現(xiàn)方法
- php生成短網(wǎng)址示例
- PHP通過調(diào)用新浪API生成t.cn格式短網(wǎng)址鏈接的方法詳解
- PHP利用DWZ.CN服務(wù)生成短網(wǎng)址
- php 短鏈接算法收集與分析
- php調(diào)用新浪短鏈接API的方法
- php生成短網(wǎng)址/短鏈接原理和用法實(shí)例分析
相關(guān)文章
Yii框架擴(kuò)展CGridView增加導(dǎo)出CSV功能的方法
這篇文章主要介紹了Yii框架擴(kuò)展CGridView增加導(dǎo)出CSV功能的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Yii框架擴(kuò)展組件實(shí)現(xiàn)導(dǎo)出CSV格式數(shù)據(jù)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05用PHP寫的一個(gè)冒泡排序法的函數(shù)簡單實(shí)例
下面小編就為大家?guī)硪黄肞HP寫的一個(gè)冒泡排序法的函數(shù)簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05

Yii2 隊(duì)列 shmilyzxt/yii2-queue 簡單概述

php生成隨機(jī)密碼自定義函數(shù)代碼(簡單快速)

php生成縮略圖示例代碼分享(使用gd庫實(shí)現(xiàn))