如今微博盛行,短网址也开始流行,当然,这样是为了控制更少的字数写更多的内容。下面是小编分享的php短域名互换实例,一起来看一下吧。/***短域名生成&解析类*/classBuild下面是小编为大家整理的2023php短域名互换实例(2023年),供大家参考。
如今微博盛行,短网址也开始流行,当然,这样是为了控制更少的字数写更多的内容。下面是小编分享的php短域名互换实例,一起来看一下吧。
/**
* 短域名生成&解析类
*/
class Build_URL
private $mem;
private $base_url = 'http://**x.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 : floorlog10$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.**x.net'
;
foreach $url as $v
$sort = $app->encode$v;
echo "sort link: ".$sort."";
$original = $app->decode$sort;
echo "original: ".$original."";
?>
推荐访问:
【2023php短域名互换实例(2023年)】相关文章: