php生成唯一编号(36进制的不重复编号)

news/2024/7/7 20:21:53

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

http://www.jb51.net/article/51705.htm

class Code { 
    //密码字典 
    private $dic = array( 
        0=>'0',    1=>'1', 2=>'2', 3=>'3', 4=>'4', 5=>'5', 6=>'6', 7=>'7', 8=>'8',     
        9=>'9', 10=>'A',  11=>'B', 12=>'C', 13=>'D', 14=>'E', 15=>'F',  16=>'G',  17=>'H',     
        18=>'I',19=>'J',  20=>'K', 21=>'L',  22=>'M',  23=>'N', 24=>'O', 25=>'P', 26=>'Q',     
    27=>'R',28=>'S',  29=>'T',  30=>'U', 31=>'V',  32=>'W',  33=>'X', 34=>'Y', 35=>'Z' 
    ); 
 
 
    public function encodeID($int, $format=8) { 
        $dics = $this->dic; 
        $dnum = 36; //进制数 
        $arr = array (); 
        $loop = true; 
        while ($loop) { 
            $arr[] = $dics[bcmod($int, $dnum)]; 
            $int = bcdiv($int, $dnum, 0); 
            if ($int == '0') { 
                $loop = false; 
            } 
        } 
        if (count($arr) < $format) 
            $arr = array_pad($arr, $format, $dics[0]); 
 
        return implode('', array_reverse($arr)); 
    } 
 
    public function decodeID($ids) { 
        $dics = $this->dic; 
        $dnum = 36; //进制数 
        //键值交换 
        $dedic = array_flip($dics); 
        //去零 
        $id = ltrim($ids, $dics[0]); 
        //反转 
        $id = strrev($id); 
        $v = 0; 
        for ($i = 0, $j = strlen($id); $i < $j; $i++) { 
            $v = bcadd(bcmul($dedic[$id { 
                $i } 
            ], bcpow($dnum, $i, 0), 0), $v, 0); 
        } 
        return $v; 
    } 
 
} 



$code = new Code(); 
$card_no = $code->encodeID(888888,5); 




转自  http://www.jb51.net/article/51705.htm


转载于:https://my.oschina.net/u/576375/blog/465875


http://www.niftyadmin.cn/n/4231360.html

相关文章

【SpringBoot WEB系列】静态资源配置与读取

【WEB系列】静态资源配置与读取 SpringWeb项目除了我们常见的返回json串之外&#xff0c;还可以直接返回静态资源&#xff08;当然在现如今前后端分离比较普遍的情况下&#xff0c;不太常见了&#xff09;&#xff0c;一些简单的web项目中&#xff0c;前后端可能就一个人包圆了…

XenApp_XenDesktop_7.6实战篇之九:SQL Server数据库服务器规划及部署

安装SQL Server 数据库&#xff0c;用于支持Desktop Studio 和桌面云管理台数据存储和访问。在简单的&#xff30;&#xff2f;&#xff23;测试中&#xff0c;数据库可以只配置单机&#xff1b;但数据库故障时&#xff0c;不但影响配置管理台&#xff0c;也会影响&#xff24;…

Kotlin教程学习-Why Kotlin?

2019独角兽企业重金招聘Python工程师标准>>> Kotlin是一种优雅的语言,是JetBrains公司开发的JVM语言,与Java有着极密切的联系,Kotlin有着怎样的魅力呢?我也是才开始学习Kotlin,打算记录下我学习Kotlin的点点滴滴. 今天是开始的一天,就说说我初见Kotlin时的感受吧. …

【SpringBoot WEB系列】WebFlux静态资源配置与访问

【SpringBoot WEB系列】WebFlux静态资源配置与访问 上一篇博文介绍SpringMVC的静态资源访问&#xff0c;那么在WebFlux中&#xff0c;静态资源的访问姿势是否一致呢 I. 默认配置 与SpringBoot的默认配置一样&#xff0c;WebFlux同样是classpath:/META-INF/resources/,classpat…

elasticsearch-2.1.1集群搭建初探/填坑

elasticsearch2.x发布有一段时间了&#xff0c;抽空把集群搭起来&#xff0c;做点实验-------------------------------------------------------------------------------------正文------------------------------------------------------------------------------------ela…

【SpringBoot WEB 系列】RestTemplate 之自定义请求头

【WEB 系列】RestTemplate 之自定义请求头 上一篇介绍了 RestTemplate 的基本使用姿势&#xff0c;在文末提出了一些扩展的高级使用姿势&#xff0c;本篇将主要集中在如何携带自定义的请求头&#xff0c;如设置 User-Agent&#xff0c;携带 Cookie Get 携带请求头Post 携带请求…

几个著名的Java开源缓存框架

2019独角兽企业重金招聘Python工程师标准>>> 摘要 本文网上转载。最近交流的人比较&#xff0c;三月份互联网公司都是这样&#xff0c;你来我往&#xff0c;我也不例外。交流多了&#xff0c;三人行必有我师&#xff0c;Java缓存框架就是本人第一次接触&#xff0c…

Quick-Media 中文二维码支持

Quick-Media 中文二维码支持 Quick-Media 项目提供了一些列多媒体操作的开箱即用工具类&#xff0c;比如图片编辑合成&#xff0c;markdown/html/svg渲染&#xff0c;音频处理&#xff1b;当然还有本文重点说明的二维码生成解析 QrCode-Plugin支持丰富的酷炫二维码生成&#x…