您当前的位置: 首页 > 网站编程 > PHP教程 > 利用PHP实现短域名互转

利用PHP实现短域名互转

作者:不详 来源:网络 发布时间: 2014-08-16 10:30 点击:
如何使用PHP实现短域名互转?下面的代码可以帮助你实现,非常简单,需要的朋友可以参考下 复制代码 代码如下: /** * 短域名生成解析类 */ class Build_URL { private $mem; private $base_url = 'http://xxx.com/'; public function __construct() { $mem_conf = array

利用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";

  }

  ?>
分享到:
本文"利用PHP实现短域名互转"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4