const CUSTOME_TABLE = "0KajD7AZcF2QnPr5fwiHRNygmupUTIXx69BWb-hMCGJo_V8Eskz1YdvL34letqSO";
const STANDARD_TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
/**
* encode
*
* @param mixed $str
* @static
* @access public
* @return void
*/
public static function encode($str) {
return strtr(rtrim(base64_encode($str), "="), self::STANDARD_TABLE, self::CUSTOME_TABLE);
}
/**
* decode
*
* @param mixed $str
* @static
* @access public
* @return void
*/
public static function decode($str) {
$str = strtr($str, self::CUSTOME_TABLE, self::STANDARD_TABLE); //转换指定字符
$intLen = strlen($str);
$intSuffix = $intLen & 3; //&是数学运算”按位与“,参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。
if ($intSuffix > 0) {
$str = $str . substr("====", $intSuffix); //substr — 返回字符串的子串
}
return base64_decode($str);
}