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',

'//www.jb51.net'

);

foreach ($url as $v) {

$sort    = $app->encode($v);

echo "sort link: ".$sort."\n";

$original    = $app->decode($sort);

echo "original: ".$original."\n";

}

?>

希望与广大网友互动??

点此进行留言吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值