background image

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";