用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3346|回复: 2
收起左侧

[库 Library] 关于微博的小功能类 id=》mid

[复制链接]
发表于 2012-12-11 11:41:56 | 显示全部楼层 |阅读模式
本帖最后由 ctoicqtao 于 2012-12-11 11:43 编辑

目前新浪微博在调用的时候会有一个问题,就是在statuses/user_timeline中调用微博内容的时候,如果需要做一个连接,则只能获取到 id / mid /idstr
不知道是新浪微博自己搞错了,还是怎么样,这三个值是一样的,而目前需要的连接地质是这样子的: weibo.com/123123/z99FCzCNl
所以找了下网上的资料,根据别人写的方法,写了个类,(唉,新手,写helper老是无效,希望牛人帮忙写一个,我也知道用helper更好一些)。现在把这个类传上来,供大家参考一下。

原文地址如下:进入原文

我解释的不清楚的地方,请大家参考原文。

PHP复制代码
 
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
 
/**
 * Description of Base62
 * for sina weibo weiboID to MID
 * http://weibo.com/uid/z99FCzCNl
 * 3521821288490611 => z99FCzCNl
 * @author TomChen
 */

 
class Base62 {  
 
    private $str62keys = array(
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
        "a", "b", "c", "d", "e", "f", "g", "h", "i",
        "j", "k", "l", "m", "n", "o", "p", "q",
        "r", "s", "t", "u", "v", "w", "x", "y",
        "z","A", "B", "C", "D", "E", "F", "G", "H",
        "I", "J", "K", "L", "M", "N", "O", "P",
        "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
);
 
    public function int10to62($int10)
    {
        $str62keys = $this->str62keys;
        $s62 = '';
        $r = 0;
        while ($int10 != 0)
        {
                $r = $int10 % 62;
                $s62 = $str62keys[$r].$s62;
                $int10 = floor($int10 / 62);
        }
        return $s62;
    }
 
    public function getmid($mid)
    {
        $url = '';
        for ($i = strlen($mid) - 7; $i > -7; $i -=7)
        //从最后往前以7字节为一组读取mid
        {
            $offset1 = $i < 0 ? 0 : $i;
            $offset2 = $i + 7;
            $num = substr($mid, $offset1,$offset2-$offset1);
            //mid.substring(offset1, offset2);
 
            $num = self::int10to62($num);
            $url = $num .$url;
        }
 
        return $url;
    }
}
 
?>
 
复制代码

评分

参与人数 1威望 +5 收起 理由
Hex + 5 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

发表于 2013-2-7 23:50:24 | 显示全部楼层
新浪官方提供了接口,直接调用,其实也挺方便的
 楼主| 发表于 2013-2-8 20:16:57 | 显示全部楼层
需要再多调用一个接口 ,,

本版积分规则