程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 利用PHP實現短域名互轉

利用PHP實現短域名互轉

編輯:關於PHP編程
    如何使用PHP實現短域名互轉?下面的代碼可以幫助你實現,非常簡單,需要的朋友可以參考下   復制代碼 代碼如下:


    /**
      * 短域名生成&解析類
      */
     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";
     }
     ?>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved