利用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)_PHP教程
推薦:10款PHP開發(fā)框架的對(duì)比PHP開發(fā)框架近來在PHP社區(qū)中成為討論的熱點(diǎn),幾乎每天都在推出新的框架。面對(duì)市面上超過四十種的開發(fā)框架,你很難判斷究竟哪一款最適合你,尤其是在這些框架所提供的功能不盡相同的時(shí)候。 概覽 以下你看到是這十款開發(fā)框架的一覽表,列舉了他們各自所提供的功能。 #1:
如何使用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)?下面的代碼可以幫助你實(shí)現(xiàn),非常簡單,需要的朋友可以參考下 復(fù)制代碼 代碼如下:
/**
* 短域名生成&解析類
*/
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 注冊(cè)時(shí)輸入信息驗(yàn)證器的實(shí)現(xiàn)詳解本篇文章是對(duì)php中注冊(cè)時(shí)輸入信息驗(yàn)證器的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下 1、對(duì)輸入信息進(jìn)行驗(yàn)證的類(主要用于驗(yàn)證用戶名,密碼,重復(fù)密碼,郵箱,可添加其它功能) 復(fù)制代碼 代碼如下: ?php /** * Validator for Register. */ final class RegisterV
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- PHP 自定義錯(cuò)誤處理函數(shù)的使用詳解
- 『PHP』PHP截?cái)嗪瘮?shù)mb_substr()使用介紹
- 基于php偽靜態(tài)的實(shí)現(xiàn)詳細(xì)介紹
- PHP實(shí)例:一個(gè)比較完善的購物車類
- 揭秘PHP學(xué)習(xí)入門的一些基礎(chǔ)知識(shí)
- Linux操作系統(tǒng)啟動(dòng)httpd失敗的解決方法
- PHP實(shí)現(xiàn)上傳文件生成小圖加文字的實(shí)例
- 解析將多維數(shù)組轉(zhuǎn)換為支持curl提交的一維數(shù)組格式
- 用PHPINFO來實(shí)現(xiàn)PHP的配置統(tǒng)計(jì)過程
- 解答網(wǎng)頁中PHP腳本中include文件報(bào)錯(cuò)的方法
- 相關(guān)鏈接:
- 教程說明:
PHP教程-利用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)。