<div class="codetitle"><a style="CURSOR: pointer" data="1597" class="copybut" id="copybut1597" onclick="doCopy('code1597')"> 代码如下:<div class="codebody" id="code1597"> /*
短域名生成&解析类 / 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",$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', '//www.52php.cn' ); foreach ($url as $v) { $sort = $app->encode($v); echo "sort link: ".$sort."n"; $original = $app->decode($sort); echo "original: ".$original."n"; } ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|