} } }

    PHP短域名互转的实例分享

    添加时间:2013-7-7 点击量:

    PHP实现短域名互转。


    代码如下:



    <?php
    
    /
    短域名生成&解析类
    edit www.jbxue.com
    /
    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 : 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.jbxue.com
    );
    foreach¥url as ¥v) {
    ¥sort = ¥app->encode(¥v);
    echo sort link: .¥sort.\n;
    ¥original = ¥app->decode(¥sort);
    echo original: .¥original.\n;
    }
    ?>

    我所有的自负皆来自我的自卑,所有的英雄气概都来自于我的软弱。嘴里振振有词是因为心里满是怀疑,深情是因为痛恨自己无情。这世界没有一件事情是虚空而生的,站在光里,背后就会有阴影,这深夜里一片寂静,是因为你还没有听见声音。—— 马良《坦白书》
    分享到: