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í)他還原了說(shuō)不定就是這個(gè)樣子:
http://t.cn/link.php?url=//www.dhdzp.com/
按這個(gè)格式可以知道這個(gè)短網(wǎng)址其實(shí)是通過(guò)link.php這個(gè)頁(yè)面做了處理,那么如何將
http://t.cn/link.php?url=//www.dhdzp.com/
縮成
這個(gè)地方需要用到url重寫(xiě),按照本例則可以這么重寫(xiě):
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 ,縮短了不少,那么如何通過(guò) RzddsXt 去查找到 //www.dhdzp.com/ 這個(gè)網(wǎng)址并跳到這個(gè)網(wǎng)址上去呢?這里就用到了一個(gè)類(lèi)似加密的算法了,通過(guò)算法將所有的長(zhǎng)網(wǎng)址縮短成一個(gè)對(duì)應(yīng)的5-6位的并且唯一字符串,并將這個(gè)對(duì)應(yīng)關(guān)系存入到數(shù)據(jù)庫(kù)中去。結(jié)合本例就是根據(jù)傳入的參數(shù) RzddsXt 到數(shù)據(jù)庫(kù)中去找對(duì)應(yīng)的網(wǎng)址,找到了就 header 跳轉(zhuǎn)過(guò)去。
ok,至于生成短網(wǎng)址的思路就是這個(gè)樣子的了。
下面分享一下通過(guò)php生成短網(wǎng)址的那個(gè)過(guò)程(這里將長(zhǎng)網(wǎng)址生成短至5-6位字符長(zhǎng)度并且還需要是唯一的):
<?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.dhdzp.com/');
將生成的一個(gè)唯一對(duì)應(yīng)碼為 S54Aq ,OK,至于如何去做 url重寫(xiě)和數(shù)據(jù)庫(kù)存儲(chǔ)這里就不多寫(xiě)了,自己根據(jù)自己的情況來(lái)吧。
PS:這里為大家推薦一款本站短網(wǎng)址生成工具(也是使用的第三方API接口生成的短網(wǎng)址)
短鏈(短網(wǎng)址)在線(xiàn)生成工具:
http://tools.jb51.net/password/dwzcreate
總結(jié)
以上就是這篇文章的全部?jī)?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簡(jiǎn)單實(shí)現(xiàn)短網(wǎng)址(短鏈)還原的方法(測(cè)試可用)
- PHP生成短網(wǎng)址方法匯總
- PHP將URL轉(zhuǎn)換成短網(wǎng)址的算法分享
- PHP長(zhǎng)網(wǎng)址與短網(wǎng)址的實(shí)現(xiàn)方法
- php生成短網(wǎng)址示例
- PHP通過(guò)調(diào)用新浪API生成t.cn格式短網(wǎng)址鏈接的方法詳解
- PHP利用DWZ.CN服務(wù)生成短網(wǎng)址
- php 短鏈接算法收集與分析
- php調(diào)用新浪短鏈接API的方法
- php生成短網(wǎng)址/短鏈接原理和用法實(shí)例分析
相關(guān)文章
在laravel中實(shí)現(xiàn)事務(wù)回滾的方法
今天小編就為大家分享一篇在laravel中實(shí)現(xiàn)事務(wù)回滾的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
PHP調(diào)用微博接口實(shí)現(xiàn)微博登錄的方法示例
這篇文章主要介紹了PHP調(diào)用微博接口實(shí)現(xiàn)微博登錄的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Zend Framework實(shí)現(xiàn)將session存儲(chǔ)在memcache中的方法
這篇文章主要介紹了Zend Framework實(shí)現(xiàn)將session存儲(chǔ)在memcache中的方法,結(jié)合實(shí)例形式分析了Zend Framework框架下將session存儲(chǔ)在memcache的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03
Symfony2創(chuàng)建頁(yè)面實(shí)例詳解
這篇文章主要介紹了Symfony2創(chuàng)建頁(yè)面的方法,結(jié)合實(shí)例形式分析了Symfony頁(yè)面創(chuàng)建的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03
關(guān)于PhpStorm設(shè)置點(diǎn)擊編輯文件自動(dòng)定位源文件的實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于PhpStorm設(shè)置點(diǎn)擊編輯文件自動(dòng)定位源文件的實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
PHP設(shè)計(jì)模式(一)工廠(chǎng)模式Factory實(shí)例詳解【創(chuàng)建型】
這篇文章主要介紹了PHP設(shè)計(jì)模式 工廠(chǎng)模式Factory,結(jié)合實(shí)例形式詳細(xì)分析了工廠(chǎng)模式的基本概念、原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05

