php中的Base62类(适用于数值转字符串)


Posted in PHP onAugust 12, 2013

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";
PHP 相关文章推荐
php中根据变量的类型 选择echo或dump
Jul 05 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP @ at 记号的作用示例介绍
Oct 10 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
PHP常见数组排序方法小结
Aug 20 PHP
php操作redis命令及代码实例大全
Nov 19 PHP
PHP实现把数字ID转字母ID
Aug 12 #PHP
PHP计算2点经纬度之间的距离代码
Aug 12 #PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
Aug 10 #PHP
浅析php中常量,变量的作用域和生存周期
Aug 10 #PHP
浅析linux下apache服务器的配置和管理
Aug 10 #PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 #PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 #PHP
You might like
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python中用Spark模块的使用教程
2015/04/13 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
详解Python的单元测试
2015/04/28 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
为什么需要版本控制
2016/10/28 面试题
买房子个人收入证明
2014/01/16 职场文书
项目建议书格式
2014/03/12 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
飞屋环游记观后感
2015/06/08 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Python 视频画质增强
2022/04/28 Python