加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

利用PHP实现短域名互转

发布时间:2020-12-13 06:30:05 所属栏目:PHP教程 来源:网络整理
导读: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

<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";
}
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读