php 中的 Base62 类(适用于数值转字符串)
以下是对
php 中 Base62 类的用法进行了详细的分析介绍,需要的朋友可以过来参考下
Base62 类源码:
代码如下
:
class
Base62 {
private
$string
=
"vPh7zZwA2LyU4bGq5tcVfIMxJi6XaSoK9CNp0OWljYTHQ8REnmu31BrdgeDkFs";
public
function
base62_encode(
$str
) {
$out
= '';
for
(
$t
=
floor
(log10(
$str
)/log10(62));
$t
>=0;
$t
--) {
$a
=
floor
(
$str
/ pow(62,
$t
));
$out
=
$out
.
substr
(
$this
->string,
$a
, 1);
$str
=
$str
- (
$a
* pow(62,
$t
));
}
return
$out
;
}
public
function
base62_decode(
$str
) {
$out
= 0;
$len
=
strlen
(
$str
) - 1;
for
(
$t
=0;
$t
<=
$len
;
$t
++) {
$out
=
$out
+
strpos
(
$this
->string,
substr
(
$str
,
$t
, 1)) * pow(62,
$len
-
$t
);
}
return
substr
(sprintf("%f",
$out
), 0, -7);
}
}
用法:
代码如下
:
$str
= 1;
$object
=
new
Base62();
echo
$object
->base62_encode(
$str
) . "\n";
echo
$object
->base62_decode(
$object
->base62_encode(
$str
)) . "\n";