利用PHP实现短域名互转
2013-07-05 00:00
681 查看
/** * 短域名生成&解析类 */ 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', 'http://www.jb51.net' ); foreach ($url as $v) { $sort = $app->encode($v); echo "sort link: ".$sort."\n"; $original = $app->decode($sort); echo "original: ".$original."\n"; } ?>
相关文章推荐
- 利用PHP实现短域名互转
- php程序的国际化实现方法(利用gettext)
- 利用PHP SOAP实现WEB SERVICE
- 【soap】利用php的soap实现webservice
- PHP中利用pcntl实现多进程(模拟多线程)实例
- php利用while单循环实现100行10列表格输出且每行颜色不一样
- 301 重定向(iis,Apache,asp,php,ColdFusion,旧域名),永久重定向实现方法。
- 利用php实现禁用IE和火狐的缓存问题
- PHP--用万网的接口实现域名查询功能
- php无刷新利用iframe实现页面无刷新上传文件(1/2)
- PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
- PHP利用P3P协议实现跨域
- PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
- PHP实现域名授权的两种方法
- PHP如何利用Python实现对PDF文件的操作
- 利用php和js实现页面数据刷新
- PHP利用openoffice实现文档装换
- 利用PHPRPC以及SOAP分别实现PHP的Webserver功能
- PHP本地通过映射,实现多域名访问
- PHP利用ECharts实现折线图