国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP將URL轉換成短網址的算法分享

2024-05-04 23:49:47
字體:
來源:轉載
供稿:網友

前言

短網址服務,可能很多朋友都已經不再陌生,現在大部分微博、手機郵件提醒等地方已經有很多應用模式了,并占據了一定的市場。估計很多朋友現在也正在使用。

短鏈接的好處:

1、內容需要;
2、用戶友好;
3、便于管理。

下面是用PHP實現短網址轉換的算法,代碼如下:

PHP

<?php//短網址生成算法class ShortUrl {    //字符表  public static $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";   public static function encode($url)  {    $key = 'abc'; //加鹽    $urlhash = md5($key . $url);    $len = strlen($urlhash);     //將加密后的串分成4段,每段4字節,對每段進行計算,一共可以生成四組短連接    for ($i = 0; $i < 4; $i++) {      $urlhash_piece = substr($urlhash, $i * $len / 4, $len / 4);            //將分段的位與0x3fffffff做位與,0x3fffffff表示二進制數的30個1,即30位以后的加密串都歸零      //此處需要用到hexdec()將16進制字符串轉為10進制數值型,否則運算會不正常      $hex = hexdec($urlhash_piece) & 0x3fffffff;       //域名根據需求填寫      $short_url = "http://t.cn/";            //生成6位短網址      for ($j = 0; $j < 6; $j++) {                //將得到的值與0x0000003d,3d為61,即charset的坐標最大值        $short_url .= self::$charset[$hex & 0x0000003d];                //循環完以后將hex右移5位        $hex = $hex >> 5;      }       $short_url_list[] = $short_url;    }     return $short_url_list;  }} $url = "http://www.sunbloger.com/";$short = ShortUrl::encode($url);print_r($short);?>

通常我們用四組網址中的第一組即可。

這里需要注意的是,這個算法是不可逆的,因此,通常的做法是將短網址和對應的原網址存入數據庫,當訪問時,從數據庫中取出匹配的原網址,通過301或header進行跳轉。

總結

以上就是這篇文章的全部內容,希望對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 金坛市| 攀枝花市| 色达县| 东乡县| 呼和浩特市| 衡阳县| 东台市| 衡东县| 韶关市| 都兰县| 公主岭市| 常德市| 甘德县| 彭阳县| 秦皇岛市| 姜堰市| 潮州市| 房山区| 油尖旺区| 中阳县| 玉山县| 含山县| 博罗县| 淮南市| 徐闻县| 沾化县| 汾阳市| 乾安县| 河源市| 宿迁市| 梨树县| 惠来县| 宜昌市| 烟台市| 漳平市| 黑山县| 丹寨县| 肇源县| 江门市| 东安县| 边坝县|