欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP生成短網(wǎng)址的思路以及實(shí)現(xiàn)方法的詳解

 更新時(shí)間:2019年03月25日 08:55:50   作者:CODETC  
今天小編就為大家分享一篇關(guān)于PHP生成短網(wǎng)址的思路以及實(shí)現(xiàn)方法的詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

短網(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è)樣子:

http://t.cn/RzddsXt

其實(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/

縮成

http://t.cn/RzddsXt

這個(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)鏈接

相關(guān)文章

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

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

    這篇文章主要介紹了Yii2 隊(duì)列 shmilyzxt/yii2-queue 的簡單概述,需要的朋友可以參考下
    2017-08-08
  • ThinkPHP的L方法使用簡介

    ThinkPHP的L方法使用簡介

    thinkPHP的L方法用于啟用多語言的情況下,設(shè)置和獲取當(dāng)前的語言定義。這篇文章主要介紹了ThinkPHP的L方法使用簡介,需要的朋友可以參考下
    2014-06-06
  • php自定義session示例分享

    php自定義session示例分享

    這篇文章主要介紹了php自定義session示例,需要的朋友可以參考下
    2014-04-04
  • php生成隨機(jī)密碼自定義函數(shù)代碼(簡單快速)

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

    創(chuàng)建大量用戶時(shí)一個(gè)一個(gè)想密碼是讓人頭疼的事,使用php隨機(jī)生成一個(gè)安全可靠的密碼,又方便又快捷,可以添加自己想的字符串,可以用在FTP密碼、Mysql密碼、網(wǎng)站后臺(tái)密碼等地方
    2014-05-05
  • Laravel-admin之修改操作日志的方法

    Laravel-admin之修改操作日志的方法

    今天小編就為大家分享一篇Laravel-admin之修改操作日志的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • php生成縮略圖示例代碼分享(使用gd庫實(shí)現(xiàn))

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

    分享一個(gè)利用php的GD庫生成縮略圖的例子,大家參考使用吧
    2014-01-01
  • 最新評(píng)論