- substr: documentation ( source)
- basename: documentation ( source)
- strpos: documentation ( source)
- hexdec: documentation ( source)
<?php
function from62to10($num) {
$from = 62;
$num = strval($num);
$dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$len = strlen($num);
$dec = 0;
for($i = 0; $i < $len; $i++) {
$pos = strpos($dict, $num[$i]);
$dec = bcadd(bcmul(bcpow($from, $len - $i - 1), $pos), $dec);
}
return $dec;
}
function decode($url) {
$file = basename($url,'.jpg');
$code = substr($file, 0, 8);
if (substr($code, 0, 2) == '00') {
return from62to10($code);
} else {
return hexdec($code);
}
}
$url = 'http://ww3.sinaimg.cn/large/0060lm7Tly1fj8dcbq7bcj30f0076jr7.jpg';
$weibo = 'http://weibo.com/u/' . decode($url);
echo $weibo;