自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何實(shí)現(xiàn)PHP長網(wǎng)址與短網(wǎng)址

開發(fā) 開發(fā)工具 后端
顧名思義,長鏈接就是一個很長的鏈接;短鏈接就是一個很短的鏈接。長鏈接可以生成短鏈接,短鏈接來源于長鏈接。

[[206140]]

什么是長鏈接、短鏈接

顧名思義,長鏈接就是一個很長的鏈接;短鏈接就是一個很短的鏈接。長鏈接可以生成短鏈接,短鏈接來源于長鏈接。

為什么要使用長鏈接、短鏈接

更加美觀,我們可以對長鏈接和短鏈接進(jìn)行對比,很顯然可以看出短鏈接相對成鏈接來說更加的短小,顯得更加的美觀。

安全性,長鏈接可能會攜帶一些參數(shù),例如http://xxx.xxx.xxx?id=1¶m1=san,我們能夠輕松的看出,該url采用的是

get的方式,同時也能看出請求了哪些參數(shù)。然而短鏈接http://t.cn/RNGQRUJ,我們只能訪問不能輕易的查看處攜帶了

哪些參數(shù)等條件。

使用場景

微博內(nèi)容的分享

短信包含的鏈接

微信分享鏈接

實(shí)現(xiàn)方法

按照百度百科的解釋,長鏈接轉(zhuǎn)換為短鏈接主要采用了md5加密的方式來實(shí)現(xiàn)轉(zhuǎn)換的。

代碼實(shí)現(xiàn)

創(chuàng)建一個curl工具函數(shù)

  1. // SINA_APPKEY就是你在微信開發(fā)者平臺的appkey 
  2. define('SINA_APPKEY'''); 
  3. function curlQuery($url) 
  4.     //設(shè)置附加HTTP頭 
  5.     $addHead = array( 
  6.         "Content-type: application/json"
  7.     ); 
  8.     //初始化curl,當(dāng)然,你也可以用fsockopen代替 
  9.     $curl_obj = curl_init(); 
  10.     //設(shè)置網(wǎng)址 
  11.     curl_setopt($curl_obj, CURLOPT_URL, $url); 
  12.     //附加Head內(nèi)容 
  13.     curl_setopt($curl_obj, CURLOPT_HTTPHEADER, $addHead); 
  14.     //是否輸出返回頭信息 
  15.     curl_setopt($curl_obj, CURLOPT_HEADER, 0); 
  16.     //將curl_exec的結(jié)果返回 
  17.     curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1); 
  18.     //設(shè)置超時時間 
  19.     curl_setopt($curl_obj, CURLOPT_TIMEOUT, 15); 
  20.     //執(zhí)行 
  21.     $result = curl_exec($curl_obj); 
  22.     //關(guān)閉curl回話 
  23.     curl_close($curl_obj); 
  24.     return $result; 

創(chuàng)建短鏈接和長鏈接的方法

  1. //根據(jù)長網(wǎng)址獲取短網(wǎng)址 
  2. function sinaShortenUrl($long_url) 
  3.     //拼接請求地址,此地址你可以在官方的文檔中查看到 
  4.     $url = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . SINA_APPKEY . '&url_long=' . $long_url; 
  5.     //獲取請求結(jié)果 
  6.     $result = curlQuery($url); 
  7.     //下面這行注釋用于調(diào)試, 
  8.     //print_r($result);exit(); 
  9.     //解析json 
  10.     $json = json_decode($result); 
  11.     //異常情況返回false 
  12.     if (isset($json->error) || !isset($json[0]->url_short) || $json[0]->url_short == '') { 
  13.         return false
  14.     } else { 
  15.         return $json[0]->url_short; 
  16.     } 
  17.  
  18. //根據(jù)短網(wǎng)址獲取長網(wǎng)址,此函數(shù)重用了不少sinaShortenUrl中的代碼,以方便你閱讀對比,你可以自行合并兩個函數(shù) 
  19. function sinaExpandUrl($short_url) 
  20.     //拼接請求地址,此地址你可以在官方的文檔中查看到 
  21.     $url = 'http://api.t.sina.com.cn/short_url/expand.json?source=' . SINA_APPKEY . '&url_short=' . $short_url; 
  22.     //獲取請求結(jié)果 
  23.     $result = curlQuery($url); 
  24.     //下面這行注釋用于調(diào)試 
  25.     //print_r($result);exit(); 
  26.     //解析json 
  27.     $json = json_decode($result); 
  28.     //異常情況返回false 
  29.     if (isset($json->error) || !isset($json[0]->url_long) || $json[0]->url_long == '') { 
  30.         return false
  31.     } else { 
  32.         return $json[0]->url_long; 
  33.     } 
  34.  

創(chuàng)建一個url處理函數(shù)

  1. //簡單處理下url,sina對于沒有協(xié)議(http://)開頭的和不規(guī)范的地址會返回錯誤 
  2. function filterUrl($url = ''
  3.     $url = trim(strtolower($url)); 
  4.     $url = trim(preg_replace('/^http:\//''', $url)); 
  5.     if ($url == '') { 
  6.         return false
  7.     } else { 
  8.         return urlencode('http://' . $url); 
  9.     } 
  10.  

調(diào)用函數(shù)

  1. //要縮短的網(wǎng)址 
  2. $url = "http://www.qqdeveloper.com/detail/25/1.html"; //這里自己看著辦,修改成你要縮短的網(wǎng)址還是獲取post的數(shù)據(jù)還是怎么滴。 
  3. $url = filterUrl($url); //對URL進(jìn)行簡單處理的方法 
  4. echo $short = sinaShortenUrl($url); //根據(jù)傳入的長網(wǎng)址生產(chǎn)短網(wǎng)址 
  5. echo "</br>"
  6. echo $ulong = sinaExpandUrl($short); 

示例代碼下載地址:http://pan.baidu.com/s/1jI9oLxG

【本文為51CTO專欄作者“太平洋警察”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2022-02-25 14:11:48

短網(wǎng)址Java算法

2017-11-22 10:53:22

2018-10-15 12:42:21

2022-09-13 17:45:40

長網(wǎng)址短鏈系統(tǒng)

2015-06-24 10:10:38

C#短鏈接生成

2013-12-20 17:07:45

搜狗網(wǎng)址導(dǎo)航搜狗

2011-05-18 13:28:46

jQueryPHPAJAX

2009-10-22 23:49:51

漏洞惡意

2013-09-09 16:11:10

2014-01-03 17:06:46

搜狗網(wǎng)址導(dǎo)航

2014-07-08 09:45:39

域名“.網(wǎng)址”

2018-04-02 08:28:33

Google網(wǎng)絡(luò)服務(wù)

2009-10-15 09:30:17

互聯(lián)網(wǎng)創(chuàng)始人

2009-12-07 18:42:55

PHP與Javascr

2017-05-17 12:33:16

程序員系統(tǒng)二進(jìn)制

2013-04-10 18:12:57

2011-01-04 14:30:38

2020-09-01 11:40:01

HTTPJavaTCP

2009-12-15 14:08:31

VS2008 軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號