|
本帖最后由 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;
}
}
?>
复制代码
|
评分
-
查看全部评分
|