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

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

利用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)

2024-05-04 21:54:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
如何使用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)?下面的代碼可以幫助你實(shí)現(xiàn),非常簡(jiǎn)單,需要的朋友可以參考下 復(fù)制代碼 代碼如下:


/**
  * 短域名生成&解析類
  */
 class Build_URL {

     private $mem;
     private $base_url = 'http://xxx.com/';

     public function  __construct() {
         $mem_conf    = array(
                 array(
                         'host'    => '192.168.10.90',
                         'port'    => '11116'
                 ),
                 array(
                         'host'    => '192.168.10.90',
                         'port'    => '11117'
                 ),
         );
         $this->mem    = new Memcache();
         foreach ($mem_conf as $v) {
             $this->mem->addServer($v['host'], $v['port']);
         }
     }

     public function encode($url) {
         $url    = trim($url);
         if(!preg_match("#^[http://|https://|ftp://]#iS", $url)) {
             return false;
         }
         $md5    = md5($url);
         $aid    = $this->mem->get($md5);
         if(!$aid) {
             if(($aid = $this->mem->increment('auto_increment_id')) === false) {
                 $this->mem->set('auto_increment_id', 10000);
                 $aid = $this->mem->increment('auto_increment_id');
             }
             $this->mem->set($md5, $aid);
             $key    = $this->dec2any($aid);
             $this->mem->set($key, $url);
         } else {
             $key    = $this->dec2any($aid);
         }

         return $this->base_url.$key;
     }

     public function decode($url) {
         $key    = str_replace($this->base_url, '', trim($url));
         return $this->mem->get($key);
     }

     private function dec2any($num, $base=62, $index=false) {
         $out = '';
         if (! $base ) {
             $base = strlen($index);
         } else if (! $index ) {
             $index = substr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ,0 ,$base);
         }
         $t = ($num == 0) ? 0 : floor(log10($num) / log10($base));
         for ($t; $t >= 0; $t--) {
             $a = floor($num / pow( $base, $t ));
             $out = $out . substr($index, $a, 1);
             $num = $num - ($a * pow( $base, $t ));
         }
         return $out;
     }
 }

 $app = new Build_URL();
 $url = array(
     'http://www.baidu.com',
     'http://www.google.com',
     'http://www.jb51.net'
 );
 foreach ($url as $v) {
     $sort    = $app->encode($v);
     echo "sort link: ".$sort."/n";
     $original    = $app->decode($sort);
     echo "original: ".$original."/n";
 }
 ?>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平度市| 裕民县| 嘉峪关市| 察隅县| 闽侯县| 米易县| 沈丘县| 缙云县| 绩溪县| 甘洛县| 浪卡子县| 余干县| 普宁市| 和静县| 临夏市| 辉南县| 巢湖市| 朝阳市| 蛟河市| 营口市| 鸡西市| 延吉市| 长丰县| 湘阴县| 大安市| 临朐县| 泰安市| 仲巴县| 时尚| 灵丘县| 玛沁县| 鄂托克旗| 永善县| 西乡县| 新建县| 吴堡县| 屏东市| 汝州市| 咸丰县| 绥芬河市| 米林县|