龙行博客

走路看风景,经历看人生,岁月留痕迹,人生留轨迹,17的历史,18的豪情,时间的匆忙,人生的风景,放开心胸往前走,成功再远行,放开理想往前走,梦想再行动。
现在位置:首页 > 编程语言 > PHP > PHP生成唯一RequestID类

PHP生成唯一RequestID类

龙行    PHP    2022-10-30    156    0评论    

PHP生成唯一RequestID类

<?php

namespace tool;

/**
* PHP生成唯一RequestID类
* Date:    2022-10-12
* Author:  lt
* Version: 1.0
*
* Description:
* PHP实现生成唯一RequestID类,使用session_create_id()与uniqid()方法实现,保证唯一性。
*
* Func:
* public  generate 生成唯一请求id
* private format   格式化请求id
*/
class RequestID
{

   /**
    * 生成唯一请求id
    * @return String
    */
   public static function generate()
   {

       // 使用session_create_id()方法创建前缀
       $prefix = session_create_id(date('YmdHis'));

       // 使用uniqid()方法创建唯一id
       $request_id = strtoupper(md5(uniqid($prefix, true)));

       // 格式化请求id
       return self::format($request_id);

   }

   /**
    * 格式化请求id
    * @param  String $request_id 请求id
    * @param  String $format 格式
    * @return String
    */
   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);

   }
}


评论一下 分享本文 赞助站长

赞助站长X

扫码赞助站长
联系站长
龙行博客
  • 版权申明:此文如未标注转载均为本站原创,自由转载请表明出处《龙行博客》。
  • 本文网址:https://www.liaotaoo.cn/418.html
  • 上篇文章:Hyperf 操作 Elasticsearch 协程客户端
  • 下篇文章:Hyperf-Task使用
  • php php7 swoole
快捷导航
联系博主
在线壁纸
给我留言
四四五五
音乐欣赏
返回顶部