利用PHP实现短域名互转
如何使用PHP实现短域名互转?下面的代码可以帮助你实现,非常简单,需要的朋友可以参考下。
代码如下:
/**
* 短域名生成&解析类
*/
class Build_URL {
private $mem;
private $base_url = '';
public function __construct() {
$mem_conf = array(
array(
'host' => '',
'port' => '11116'
),
array(
'host' => '',
'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(
'',
'',
''
);
foreach ($url as $v) {
$sort = $app->encode($v);
echo "sort link: ".$sort."n";
$original = $app->decode($sort);
echo "original: ".$original."n";
}
?>
-
PHP中多态如何实现
PHP是一种HTML内嵌式的,用来制作动态网页的服务器端的脚本语言。以下是本站小编整理的PHP中多态如何实现的内容,欢迎学习!1PHP语言介绍PHP是一种HTML内嵌式的,用来制作动态网页的服务器端的脚本语言。其特点是:开发周期短,稳定安全,简单易学,免费开源,良好的跨平台特性...
-
php统计数组元素个数的方法
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的.风格有类似于C语言,被广泛地运用。下面是小编为大家搜索整理的php统计数组元素个数的方法,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!count():对数组中的元...
-
2017年PHP错误总结范文
导语:如果你还是PHP新手的话,不妨就找些PHP错误点来看看。下面的是本站小编为大家搜集的2017年PHP错误总结,供大家参考。错误总结PHP-不断更新(新手必看)做开发请开启全部错误提示:error_reporting=E_ALL|E_STRICT屏蔽错误提示等于掩耳盗铃。代码写规范,错误少一半...
-
php通过sudo执行root指令
PHP是一种很强大的语言,那么下面就一起来看他在指令方面的应用吧!下面是本站小编精心为大家整理的php通过sudo执行root指令,希望对大家学习有帮助,更多内容请关注应届毕业生网!1.高级的用法如限制主机、用户组、命令组的用法可以参照下面的规则,详细可参看"mansudo...