广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php如何生成6位不重复的字符串
  • 871
分享到

php如何生成6位不重复的字符串

2023-06-25 13:06:54 871人浏览 泡泡鱼
摘要

本篇内容介绍了“PHP如何生成6位不重复的字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php生成6位不重复的字符串的方法:1、通过“

本篇内容介绍了“PHP如何生成6位不重复的字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

php生成6位不重复的字符串的方法:1、通过“substr(md5(microtime(true)), 0, 6);”截取前6位;2、使用数据库bigint自增字段,转成62进制缩短长度即可。

php如何生成6位不重复的字符串

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php怎么生成6位不重复的字符串?

PHP生成6位的不重复的字符串(类似 UUID)

我们要考虑到:

不重复。

安全性。

【 不建议使用啥敏感的数据作为订单生成规则(例如:用户UID,订单自增ORDER_ID等),以为会暴露网站一些敏感信息】

不能使用大规模随机码。

why?

首先问你"编程语言中的随机能做到真随机吗?",我可以不自信的告诉你至少PHP做不到,所以可能导致第一个"不重复"原则发生

如果你的订单数量到达了1000w次,你每次生成订单编码时就得对比1000w条历史数据,一般在500w的时候,你得花时间在数据库优化上(简单处理:采用分区,建立索引,然而实际性要求高,可能需要在主数据库下操作,可想你有多痛,当然对于数据库实时读写还有其他的优化办法,在此不作介绍)。

防止并发

控制位数。

why?

  • 便于查询检索

  • 位数控制到 10-20位即可,当然网上将的是10~15缘由是利于输入,对于输入太长做好用户体验就好(新增复制订单按钮)

尽量具有业务意义(不是强制的,根据公司业务来)

【当你业务比较庞大时候,或者后期有大规模的扩充时,建议考虑下订单的生成意义,根据公司的业务做调整。举个最简单的例子:"一个卖化妆品的商城,你需要根据订单来源来(pc/移动)来生成报表,这时候可能需要"】

解决办法

// 类似生成 UUID ,不依赖外部流水号,完全靠时间戳和随机数生成订单号无法避免冲突,// 所以必须引入外部的流水号生成机制。或使用数据库,或使用APC之类的缓存。// 用APC之类的缓存存在一个问题,就是无法持久保持数据,服务器重启或者PHP宿主进程重启都会清空流水号计数器,// 所以可以采取缓存+数据库结合的模式——如果缓存中有流水号计数器数据则读取并累加计数,如果缓存中没有流水号计数器从数据库中还原计数器。// 计数器可以每隔一段时间重置一次。既然引入了自增流水号计数器,又会导致文章开头的“德国坦克问题”,// 所以需要用skip32算法把流水号加密// (https://GitHub.com/nlenepveu/Skip32)。// 订单号 = 日期前缀 + 加密流水号// Skip32 算法加密密钥const ENCRYPTED_KEY = 'xxxxxxxxxxxx';// 使用 Wincache 作为流水号计数器缓存function getOrderSerialNumber() {    $timestamp = time();    $datePrefix = date('ymd', $timestamp);// 如果流水号计数器数据不在缓存中,则尝试从数据库中恢复    if (false === ($value = wincache_ucache_inc($datePrefix))) {    wincache_lock($datePrefix);// 从数据库中获取今日的订单数    $counter = getNumberOfOrdersTodayFromDatabase($timestamp);    $value = $counter + 1;if (!wincache_ucache_add($datePrefix, $value, 60*60*24)) {    $value = wincache_ucache_inc($datePrefix);}    wincache_unlock($datePrefix);}    return $datePrefix.str_pad(Skip32::encrypt($datePrefix.ENCRYPTED_KEY, $value), 10, '0', STR_PAD_LEFT);}

简单方式:

当前时间戳md5加密,截取前6位

echo substr(md5(microtime(true)), 0, 6);

使用数据库bigint自增字段,转成62进制缩短长度

echo gmp_strval(gmp_init('9876543210', 10), 62);

“php如何生成6位不重复的字符串”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: php如何生成6位不重复的字符串

本文链接: https://www.lsjlt.com/news/304705.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php如何生成6位不重复的字符串
    本篇内容介绍了“php如何生成6位不重复的字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php生成6位不重复的字符串的方法:1、通过“...
    99+
    2023-06-25
  • php怎么生成6位不重复的字符串
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php怎么生成6位不重复的字符串PHP生成6位的不重复的字符串(类似 UUID)我们要考虑到:不重复。安全性。【 不建议使用啥敏感的数据作为订单生成规则(例如:用户UID...
    99+
    2018-11-08
    php 不重复
  • php如何生成永不重复的字符串
    这篇文章主要介绍“php如何生成永不重复的字符串”,在日常操作中,相信很多人在php如何生成永不重复的字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何生成永不重复的字符串”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • php如何生成字符串唯一不重复
    小编给大家分享一下php如何生成字符串唯一不重复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php生成字符串唯一不重复的方法:1、当前时间戳进行md5加密,截取...
    99+
    2023-06-20
  • php怎么生成永不重复的字符串
    PHP是一种常用的开源脚本语言,它非常流行,因为它功能强大,易学易于使用。PHP中,生成永不重复的字符串是一个常见的需求,它在数据处理、安全验证等方面都有很大的作用。本文将介绍如何基于PHP生成永不重复的字符串,希望能帮助读者更好地理解PH...
    99+
    2023-05-14
    php php字符串
  • php怎么生成不重复的随机字符串
    PHP中可以使用`uniqid()`函数生成不重复的随机字符串。```php$randomString = uniqid();```...
    99+
    2023-08-25
    php
  • Php中生成6位无规律、唯一、不重复的邀请码
    //输入当前的用户编号自增长的id function getInviteCode($userId){ $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123...
    99+
    2023-09-17
    php javascript 开发语言
  • 如何用php生成一个不重复的随机4位数字
    这篇文章主要介绍“如何用php生成一个不重复的随机4位数字”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用php生成一个不重复的随机4位数字”文章能帮助大家解决问题。方法一:使用数组我们可以通过...
    99+
    2023-07-05
  • php如何随机生成不重复字母
    今天小编给大家分享一下php如何随机生成不重复字母的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php随机生成不重复字母的方...
    99+
    2023-07-04
  • php如何生成随机字符串
    在php中使用str_shuffle()和substr()函数随机生成字符串,具体方法如下:首先,新建一个php项目文件;php项目文件新建好后,在文件中定义生成字符串的范围;$str = 'aodnymcueifghw';字符串...
    99+
    2022-10-03
  • PHP如何随机生成18位不重复的订单号
    这篇文章主要介绍PHP如何随机生成18位不重复的订单号,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP代码: function generateOrderNumber($length=4){/...
    99+
    2023-06-07
  • 怎么用php生成一个不重复的随机4位数字
    在PHP开发中,我们经常需要生成随机的数字,来实现一些特定的功能或者验证码的生成等。但是,如果这些随机生成的数字重复,就会出现一些问题。那么如何在PHP中生成一个不重复的随机4位数字呢?下面就介绍一下实现方式。方法一:使用数组我们可以通过数...
    99+
    2023-05-14
    随机数字 php
  • php如何将字符串重复几次
    本篇内容主要讲解“php如何将字符串重复几次”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何将字符串重复几次”吧!在PHP中,可以使用str_repeat()函数来将字符串重复指定的次数...
    99+
    2023-06-29
  • 生成8位随机不重复的数字编号的方法
    复制代码 代码如下: package com.jjinfo.common.util; import java.util.Arrays; import java.util.Random...
    99+
    2022-11-15
    8位随机 数字编号
  • php如何替换字符串的第三位字符
    这篇文章给大家分享的是有关php如何替换字符串的第三位字符的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在php中,可以使用substr_replace()函数来替换指定字符串的第三位字符,该函数可以从字符串指定...
    99+
    2023-06-26
  • java如何从字符串中找出第一个不重复的字符
    这篇文章将为大家详细讲解有关java如何从字符串中找出第一个不重复的字符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何从字符串中找出第一个不重复的字符比如说字符串“沉默王沉沉默二”,第一个不重复的字符...
    99+
    2023-06-27
  • php如何生成不重复的序列号
    这篇“php如何生成不重复的序列号”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php如何生成不重复的序列号”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们...
    99+
    2023-06-06
  • php数组中如何去除重复的字符串
    今天小编给大家分享一下php数组中如何去除重复的字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用array_uniq...
    99+
    2023-07-05
  • php如何判断字符串是否有重复
    本篇内容介绍了“php如何判断字符串是否有重复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!判断步骤:1、利用str_split()把字符串...
    99+
    2023-07-02
  • php如何查询字符串中某个字符的位置
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。我们在学习PHP的时候一定会接触到大量的字符串,那么如果我们想要从一个字符串中找个某个字符在该字符串中的具体位置该如何做呢?其实很简单,因为PHP已经为我们提...
    99+
    2018-11-11
    php 字符串 字符 位置
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作