|
- <?php
- function dec_to($n, $t = 62) {
- if ($t == 10 || $t > 62 || $t < 2) {
- return $n;
- }
- $d = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- $r = "";
- do {
- $r = $d[bcmod($n, $t)] . $r;
- $n = bcdiv($n, $t);
- } while ($n > 0);
- return $r;
- }
- function dec_from($n, $f = 62) {
- if ($f == 10 || $f > 62 || $f < 2) {
- return $n;
- }
- $n = strval($n);
- $d = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- $dec = 0;
- $l = strlen($n);
- for($i = 0; $i < $l; $i++){
- $p = strpos($d, $n[$i]);
- if ($p >= $f) {
- continue;
- }
- $dec = bcadd(bcmul(bcpow($f, $l - $i - 1), $p), $dec);
- }
- return $dec;
- }
- function radix($z, $t = 62, $f = 10) {
- $z = dec_from($z, $f);
- $z = dec_to($z, $t);
- return $z;
- }
- $y="";
- for($x[0]=1;$x[0]>=0;$x[0]--){
- for($x[1]=1;$x[1]>=0;$x[1]--){
- for($x[2]=1;$x[2]>=0;$x[2]--){
- for($x[3]=1;$x[3]>=0;$x[3]--){
- $y=$y.$x[0].$x[1].$x[2].$x[3];
- }}}}
- echo "PHP 实现2~62进制转换功能 <br>函数调用方法:radix("要转换的字符",目标进制,当前进制);<br>";
- echo "By:".radix($y,62,2)." 2017-07-04<br>";
- echo "https://www.".radix($y,16,2).".com/<br>";
- ?>
复制代码 |
|