| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- namespace common\helpers;
- use Yii;
- /**
- * 十进制转64进制
- * @package common\helpers
- * @author qimall
- */
- class Base64Helper
- {
- private static $alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/';
- /**
- * 十进制转64进制
- * @Author bing
- * @DateTime 2021-11-29 16:06:52
- * @copyright: Copyright (c) 2020 广东七件事集团
- * @param [type] $dec_num
- * @return void
- */
- public static function dec2Base64($dec_num)
- {
- $base64_num = '';
- $base = strlen(self::$alphabet);
- if($dec_num == 0) $base64_num = self::$alphabet[0];
- while($dec_num > 0){
- $remainder = $dec_num % $base;
- $dec_num = ($dec_num-$remainder) / $base;
- if($remainder == 0){
- $base64_num = self::$alphabet[0] . $base64_num;
- }else{
- $base64_num = self::$alphabet[$remainder] . $base64_num;
- }
- }
- return $base64_num;
- }
-
- /**
- * 64进制转十进制
- * @Author bing
- * @DateTime 2021-11-29 16:06:52
- * @copyright: Copyright (c) 2020 广东七件事集团
- * @param [type] $dec_num
- * @return void
- */
- public static function Base642dec($base64_num){
- $digit = strlen($base64_num);
- $base = strlen(self::$alphabet);
- $dec_num = 0;
- for($i = 0; $i < $digit; $i++){
- //每一位分别读取
- $mult = 1;
- for($j = $digit - 1; $j > $i; $j--){
- //构造当前位需要乘的数
- if($i == ($digit - 1)){
- $mult = 1;
- }else{
- $mult = $mult * $base;
- }
- }
- //计算当前位数代表的十进制数,然后累加
- $dec_num += strpos(self::$alphabet, $base64_num[$i]) * $mult;
- }
- return $dec_num;
- }
- }
|