广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php不重复唯一值怎么实现
  • 300
分享到

php不重复唯一值怎么实现

2024-04-02 19:04:59 300人浏览 薄情痞子
摘要

本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php不重复唯一值怎么实现?php 生成不重复唯一标识 session_create_id()PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒

教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。

php不重复唯一值怎么实现?

php 生成不重复唯一标识 session_create_id()

PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复。

使用session_create_id()函数生成唯一标识符,经过实际测试发现,即使循环调用session_create_id()一亿次,都没有出现过重复。

php session_create_id()是php 7.1新增的函数,用来生成session id,低版本无法使用。

PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复。

使用session_create_id()函数生成唯一标识符,经过实际测试发现,即使循环调用session_create_id()一亿次,都没有出现过重复。

php session_create_id()是php 7.1新增的函数,用来生成session id,低版本无法使用。

<?php

class RequestID{ // class start
 
    
    public static function generateV7(){
        // 使用session_create_id()方法创建前缀
        $prefix = session_create_id(date('YmdHis'));
        // 使用uniqid()方法创建唯一id
        $request_id = strtoupper(md5(uniqid($prefix, true)));
        // 格式化请求id
        return self::fORMat($request_id);
    }
 
    public static function generate(){
        // 创建前缀
        $prefix = self::create_guid(date('YmdHis'));
        // 使用uniqid()方法创建唯一id
        $request_id = strtoupper(md5(uniqid($prefix, true)));
        // 格式化请求id
        return self::format($request_id);
    }
 
    public static function create_guid($namespace = '') {  
        static $guid = '';
        $uid = uniqid("", true);
        $data = $namespace;
        $data .= $_SERVER['REQUEST_TIME'];
        $data .= $_SERVER['Http_USER_AGENT'];
        $data .= isset($_SERVER['LOCAL_ADDR'])?$_SERVER['LOCAL_ADDR']:$_SERVER['SERVER_ADDR'];
        $data .= isset($_SERVER['LOCAL_PORT'])?$_SERVER['LOCAL_PORT']:$_SERVER['SERVER_PORT'];
        $data .= $_SERVER['REMOTE_ADDR'];
        $data .= $_SERVER['REMOTE_PORT'];
        $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
        $guid = '{' . 
          substr($hash, 0, 8) .
          '-' .
          substr($hash, 8, 4) .
          '-' .
          substr($hash, 12, 4) .
          '-' .
          substr($hash, 16, 4) .
          '-' .
          substr($hash, 20, 12) .
          '}';
        return $guid;
    }
 
    
    private static function format($request_id, $format='8,4,4,4,12'){
        $tmp = array();
        $offset = 0;
        $cut = explode(',', $format);
        // 根据设定格式化
        if($cut){
            foreach($cut as $v){
                $tmp[] = substr($request_id, $offset, $v);
                $offset += $v;
            }
        }
        // 加入剩余部分
        if($offset<strlen($request_id)){
            $tmp[] = substr($request_id, $offset);
        }
        return implode('-', $tmp);
    }
} // class end
 
// 生成10个请求id
for($i=0; $i<10; $i++){
 echo RequestID::generate().PHP_EOL.'<br>';
}

以上就是php不重复唯一值怎么实现的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: php不重复唯一值怎么实现

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

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

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

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

下载Word文档
猜你喜欢
  • php不重复唯一值怎么实现
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php不重复唯一值怎么实现?PHP 生成不重复唯一标识 session_create_id()PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒...
    99+
    2022-11-03
  • php不重复唯一值如何实现
    今天小编给大家分享一下php不重复唯一值如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php实现不重复唯一值的方法:...
    99+
    2023-07-04
  • 在Map中实现key唯一不重复操作
    目录Map中如何实现key唯一不重复问题:如何做到Map中key唯一不重复,每次都遍历来equals比较吗?结合HashMap.class中的put方法来说明:如何找到这个区域呢?得...
    99+
    2022-11-12
  • php如何生成字符串唯一不重复
    小编给大家分享一下php如何生成字符串唯一不重复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php生成字符串唯一不重复的方法:1、当前时间戳进行md5加密,截取...
    99+
    2023-06-20
  • php怎么实现不重复编码
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php怎么实现不重复编码?PHP实现生成唯一编号(36进制的不重复编号):当我们要将一个庞大的数据进行编号时,而编号有位数限制,比如5位的车牌号、10位的某证件号码、订...
    99+
    2020-01-07
    php
  • 高并发php uniqid不重复唯一标识符生成方案
    PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重...
    99+
    2022-11-12
  • php数组值不能重复怎么避免
    这篇文章主要介绍“php数组值不能重复怎么避免”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php数组值不能重复怎么避免”文章能帮助大家解决问题。为什么数组值不能重复?数组是一种特殊的变量类型,可以...
    99+
    2023-07-05
  • php一个字段值怎样去掉重复值
    本教程操作环境:windows10系统、PHP7.1版,DELL G3电脑php一个字段值怎样去掉重复值explode(',',$data)将字符串已,拆分组成数组array_unique() 数组去除重复值implode(...
    99+
    2021-04-29
    PHP
  • Php中生成6位无规律、唯一、不重复的邀请码
    //输入当前的用户编号自增长的id function getInviteCode($userId){ $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123...
    99+
    2023-09-17
    php javascript 开发语言
  • php怎么实现踢出数组的重复值
    在开发过程中,经常会涉及到处理数组的场景,其中处理重复值的问题是较为常见的。比如在购物车中,当用户加入同一种商品时需要判断商品是否已存在,避免重复添加。在这些场景下,我们需要一种方法来去除重复值,保证数据的准确性。PHP作为一种常用的服务器...
    99+
    2023-05-14
  • php怎么提取数组中不重复的值
    提取步骤:1、利用array_count_values()函数统计数组中元素的出现次数,语法“array_count_values(原数组)”,会返回一个关联数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数;2、利用array...
    99+
    2022-07-13
    php php数组
  • php怎么去除重复值
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php怎么去除重复值?php去除数组中重复值,并返回结果!array_unique(array) 只能处理value只有单个的数组。去除有多个value数组,可以使用...
    99+
    2022-10-21
  • php range 不重复随机数怎么实现
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php range 不重复随机数怎么实现?PHP生成不重复随机数的几种方法方法一:<php $numbers = range (1,50); //shuff...
    99+
    2022-10-26
  • php怎么获取2个数组中不重复的值
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,获取2个数组不重复的值,也就是比较两个数组,找出两个数组中的不同元素,即就差集。下面我们就来看看php中怎么比较两个数组,就差集。方法1、使用array_d...
    99+
    2019-02-10
    php 数组
  • php数组怎么消除重复值
    在PHP开发中,数组是非常常用的一种数据类型。有时候,我们需要从一个数组中提取出不重复的值,这时候就需要用到去重操作了。PHP提供了多种方式可以对数组进行去重操作。一、使用array_unique()函数array_unique()函数是P...
    99+
    2023-05-19
  • php如何实现不重复编码
    这篇文章主要讲解了“php如何实现不重复编码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现不重复编码”吧!php实现不重复编码的方法:1、创建一个PHP示例文件;2、使用PHP...
    99+
    2023-06-22
  • php为什么数组值不能重复?如何避免?
    PHP数组是一种常用的数据类型,用于存储大量数据并进行操作。在使用PHP数组时,有一些基本的规则需要遵守。其中之一就是数组值不能重复。这意味着,在同一个数组中,不能使用相同的值作为键或元素。为什么数组值不能重复?数组是一种特殊的变量类型,可...
    99+
    2023-05-14
    php php数组
  • php怎么移除数组中重复的值
    可以使用 PHP 的 array_unique() 函数来移除数组中的重复值。具体示例如下:```php```输出结果为:```Ar...
    99+
    2023-10-12
    php
  • php数组怎么去除0和重复值
    php数组去除0和重复值的步骤:1、利用array_diff()函数去除数组中的0,语法“array_diff($arr, [0])”,会返回一个去0数组;2、使用array_unique()函数删除去0数组中的重复值即可,语法“array...
    99+
    2022-07-05
    php php数组
  • php怎么生成不重复颜色
    本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑php怎么生成不重复颜色?php生成多个随机不重复颜色代码代码如下:<php function randColor($num){ //color value lim...
    99+
    2020-07-21
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作