PHP實現URL長連線轉短連線方法總結

2021-09-19 15:58:25 字數 2390 閱讀 2085

閱讀目錄

這樣的話其好處為:1、內容需要;2、使用者友好;3、便於管理。

實現短**(short url)系統比較流行的演算法有兩種自增序列演算法、 摘要演算法

回到頂部

自增序列演算法也叫永不重複演算法

設定 id 自增,乙個 10進製 id 對應乙個 62進製的數值,1對1,也就不會出現重複的情況。這個利用的就是低進製轉化為高進製時,字元數會減少的特性。

回到頂部

1、將長**md5生成 32 位簽名串,分為 4 段, 每段 8 個位元組

2、對這四段迴圈處理, 取 8 個位元組, 將他看成 16 進製串與 0x3fffffff(30位1) 與操作, 即超過 30 位的忽略處理

3、這 30 位分成 6 段, 每 5 位的數字作為字母表的索引取得特定字元, 依次進行獲得 6 位字串

4、總的md5串可以獲得 4 個 6 位串,取裡面的任意乙個就可作為這個長 url 的短 url 位址

這種演算法,雖然會生成4個code,但是仍然存在重複機率

以上兩種演算法具體實現原理參考:短**(short url)系統的原理及其實現

依據第二種演算法,url長連線轉短連線實現方法如下:

語言:php5.6

伺服器環境:lnmp

第一步:利用shorturl()函式,生成短連線code碼,並將資料存入mysql資料庫;

函式shorturl():

<?php 

/**

* 由長連線生成短鏈結操作

* * 每個字元有62種狀態,六個字元就可以表示62^6(56800235584),那麼如何得到這六個字元,

* 具體描述如下:

* 1. 對傳入的長url+設定key值 進行md5,得到乙個32位的字串(32 字元十六進製制數),即16的32次方;

* 2. 將這32位分成四份,每乙份8個字元,將其視作16進製制串與0x3fffffff(30位1)與操作, 即超過30位的忽略處理;

* 3. 這30位分成6段, 每5個一組,算出其整數值,然後對映到我們準備的62個字元中, 依次進行獲得乙個6位的短鏈結位址。

* */

function shorturl( $long_url )

$output[$i] = $out;

} return $output;

}

$url = '';//長連線

$ret = shorturl($url);

var_dump($ret);

################ 列印結果 ################

/* array(4) */

資料庫結構(可自定義):

create table `long_short_url` (

`id` int(32) unsigned not null auto_increment,

`long_url` varchar(255) default null,

`short_url_code` varchar(255) default null,

`create_time` varchar(32) default null,

primary key (`id`)

) engine=innodb auto_increment=387 default charset=utf8;

public function longurl()
第四部:修改nginx伺服器nginx.conf配置檔案

在底部(任意位置)增添以下**:

server
然後儲存,重啟nginx伺服器。

另外:1.自增序列演算法實現方法參考例項:php實現短鏈結系統

2.php開源短連線生成系統:yourls

yourls (your own url shortener) 是一款使用php+mysql開發的短鏈結程式,讓你可以輕鬆建立屬於自己的短**生成系統。而無需第三方平台你就可以獲得所有的資料統計,並且支援一系列外掛程式擴充套件。

安裝流程:

將安裝包解壓並上傳至伺服器;

user/config-sample.php重新命名為user/config.php

編輯user/config.php檔案,填入資料庫資訊和配置站點等選項;

訪問即可!

PHP實現URL長連線轉短連線方法

短鏈結,通俗來說,就是將長的url 通過程式計算等方式,轉換為簡短的 字串。1 內容需要 2 使用者友好 3 便於管理。實現短 short url 系統比較流行的演算法有兩種自增序列演算法 摘要演算法 1 將長 md5生成 32 位簽名串,分為 4 段,每段 8 個位元組 2 對這四段迴圈處理,取 ...

長連線 短連線

長連線在web中的運用 如果沒有客戶端大量的訪問,可以採用html5的serversocket長連線 例如hudson 執行時會實時的返回當前執行的結果 vmstat 監控 b 長連線 資料庫連線 短連線 http連線 b b 一 長連線與短連線 b 長連線 client方與server方先建立連線...

長連線 短連線

http協議的長連線和短連線,實質上是tcp協議的長連線和短連線。http屬於應用層協議,在傳輸層使用tcp協議,在網路層使用ip協議。ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料報。http是乙個無狀態的面向連線的協議,無狀態不代表http不能保持tcp連線...