web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. AIGC工具
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站
    手机应用

php如何生成唯一值session_create_id

732 ℃

php如何生成唯一值session_create_id(),下面web建站小编给大家详细介绍一下具体代码!

实现代码如下:

<?php
class RequestID{
    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;
    }
  
    // 格式化请求id
    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);
    }
}
  
// 生成10个请求id
for($i=0; $i<10; $i++){
 echo RequestID::generate().PHP_EOL.'<br>';
}

php接口:如何把mysql输出的数据进行批量修改

php表单提交报错显示适当的错误消息代码

php编程实战:小白轻松构建灵活高效的多对一通讯录代码示例

MySQL中存储性别信息的基本操作方法!

PHP数组操作教程:如何高效移除数组中的空元素

标签: 生成唯一值

上面是“php如何生成唯一值session_create_id”的全面内容,想了解更多关于 php入门 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_3376.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > php入门
本文共计1463个字,预计阅读时长10分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款简单高效漂亮的多平台笔记应用——Zoho Notebook
下一篇: 推荐2款充满科技感的艺术字体——小新黑体、小新潮酷体
x 打工人ai神器