利用PHP实现短域名互转_php技巧

WBOY
发布: 2016-05-17 08:57:00
原创
763 人浏览过
复制代码 代码如下:

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

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

     公共函数  __construct() {
         $mem_conf    = array(
                array(
                        '主机'    => '192.168.10 .90',
                        '端口'    => '11116'                '端口'    => '11117'
                 ),
         );
$this->mem = new Memcache();
         foreach ($mem_conf as $v) {
             $this->mem->addServer($v['host'], $v[' port']);
         }
     }

     公共函数编码($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);
             $这—— >mem->set($key, $url);
         } else {
             $key    = $this->dec2any($aid);
         }

         return $ this->base_url.$key;
     }

     公共函数解码($url) {
         $key    = str_replace($this->base_url, '', trim($url) );
         return $this->mem->get($key);
     }

     私有函数 dec2any($num, $base=62, $index=false) {
         $out = '';
         if (! $base ) {
             $base = strlen($index);
         } else if (! $index ) {
             $index = substr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ",0,$base);
         }
         $t = ($num == 0) ? 0 : 楼层(log10($num) / log10($base));
         for ($t; $t >= 0; $t--) {
             $a = 楼层($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.baidu.com' google.com',
     'http://www.jb51.net'
 );
 foreach ($url as $v) {
     $sort    = $app->encode($ v);
     echo "排序链接:".$sort."n";
     $original    = $app->decode($sort);
     echo "原始:".$original." n";
 }
 ?>
相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!