<?php

class Guid{/** * 系统当前时间*/private static function  _curTimeMillis() {  list($usec,  $sec)  =  explode("  ",microtime());return  $sec.substr($usec,  2,  3);   }

/** * 客户端相关信息*/private static function  _getHost() {$name = empty($_SERVER["HTTP_USER_AGENT"]) ? 'localhost' : $_SERVER["HTTP_USER_AGENT"];return strtolower($name . '/' . self::_clientIp()); }

/** * 客户端IP*/private static function _clientIp() {$ip = (@$_SERVER['HTTP_REALIP']) ? $_SERVER['HTTP_REALIP'] : ((@$_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : @$_SERVER['REMOTE_ADDR']);

if (empty($ip))    $ip = '0.0.0.0';return $ip; }

/** * 随机数*/private static function  _random() {$tmp  =  rand(0,1) ? '-' : '';return  $tmp.rand(1000,  9999).rand(1000,  9999).rand(1000,  9999).rand(100,  999).rand(100,  999);   }

/** * 生成GUID字符串 * (长度:32 + 4) * 三段:一段是微秒,  一段是地址,  一段是随机数*/public static function  toString() {if (function_exists('com_create_guid')) {return com_create_guid(); } else {$string = md5(self::_getHost() . ':' . self::_curTimeMillis() . ':' . self::_random());$raw  =  strtoupper($string);return  substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16,4).'-'.substr($raw,20); } }}

------------------------------------------------class Uuid{private $_yearCode = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T');const START_YEAR = 2011;

/** * 组成结构:年份(1个字符),月份(1个字符[十六进制]),日(2个字符),时间戳(后5字符),微秒(6个字符),随机数(3个字符) = 18个字符*/public static function make() {return    $this->_yearCode[intval(date('Y')) - self::START_YEAR].strtoupper(dechex(date('m'))) . date('d') .substr(time(), -5) . substr(microtime(), 2, 6) . sprintf('%02d', rand(0, 99)); }}

转载于:https://www.cnblogs.com/liangle/archive/2011/10/10/2512614.html

PHP GUID和UUID生成类相关推荐

  1. 怎样用java生成GUID与UUID

    GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随机数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义 ...

  2. 常用的生成UUID工具类

    UUID import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java. ...

  3. java uuid to long_巧借Long类实现自己的UUID生成

    在使用数据库的时候,经常需要生成主键,用过数据库的自增长,但ID太有序了,很容易就能让人知道下一条记录的ID.也用过Hibernate的UUID生成,但生成的主键似乎又太长了点,于是想着自己写一个工具 ...

  4. 利用GUID/UUID生成token及验证token的正确性

    本来有JWT这种生成token验证的强大工具,但有时考虑到项目的实际需求,会利用GUID/UUID来生成token,当然GUID/UUID能生成很多具有唯一性的验证结果,所以这里主要记录下GUID/U ...

  5. UUID/GUID介绍、生成规则及生成代码

    UUID/GUID介绍.生成规则及生成代码 1. UUID介绍 1.1 介绍 1.2 UUID优势 1.3 UUID劣势 2. UUID版本 2.1 版本1 - 基于时间的UUID 2.1.1优点 2 ...

  6. 微软的COM中GUID和UUID、CLSID、IID

    摘自:http://blog.csdn.net/zhongguoren666/article/details/6711396 当初微软设计com规范的时候,有两种选择来保证用户的设计的com组件可以全 ...

  7. 【java】Java运行时动态生成类几种方式

    1.概述 转载:Java运行时动态生成类几种方式 这里发现自己不知道的,原来Java 还能自己编译自己,学到了. 最近一个项目中利用规则引擎,提供用户拖拽式的灵活定义规则.这就要求根据数据库数据动态生 ...

  8. Go语言生成GUID和UUID

    1.安装 go get -u github.com/typa01/go-utils import ("github.com/typa01/go-utils" ) 使用,例:fiel ...

  9. GUID和UUID的区别

    GUID和UUID的区别 前言: 因为刚步入企业,对很多专业名词不是很理解,所以作此总结,便于以后回顾学习. UUID: ​ UUID全称:Universally Unique Identifier, ...

  10. JCIM | 用于自动生成类药分子的生成网络复合体(GNC)

    作者/编辑 | 王建民 导读 目前的药物发现工作既昂贵又耗时.如何创造出种类繁多的新型化合物,使其不仅具有理想的药理特性,而且低收入人群也能廉价获得,仍然是一项具有挑战性的任务.这项工作中,研究人员开 ...

最新文章

  1. 安卓开发8-WebView支持文件上传
  2. 跳槽必看:产品经理面试试题汇总
  3. C# 遍历窗体控件顺序问题
  4. 《操作系统》OS学习(四):计算机体系结构、内存层次和地址生成
  5. anaconda3对应的python版本_利用SWIG实现Python调用C/C++!速度快就算了,代码量还特少!...
  6. 你已经是台成熟的vivo手机了,要自己学会打王者
  7. cin,cerr,clog,cout
  8. 源码解析由于mysql驱动包升级, “LOAD DATA” 出现The used command is not allowed with this MySQL version错误
  9. 挂钩SSDT详解附源代码
  10. LabVIEW参考资料汇总
  11. WPS中表格中上下线的磅数调整问题-三线表制作
  12. 无法识别 移动固态硬盘_安上硬盘后不显示 千万别慌可能不是SSD坏了
  13. 抖音 快手 等短视频自动向下滑动
  14. [HSI论文阅读] | SSRN:Spectral-Spatial residual network for HSI classification
  15. 我为什么选择Go语言(Golang)
  16. Linux进阶_PAM认证机制
  17. js捕获键盘事件之keydown、keyup以及keypress
  18. python图片直接保存到远端_Python在远程服务器中的实现挂代码-发送定期天气预报到邮箱+每天一句话(小白教程),远端,定时,至,每日...
  19. [AHK]为中航证券增加热键并自动填写信息
  20. MySQL 的物理备份、逻辑备份、增量备份

热门文章

  1. java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord
  2. 截至2006年3月1日全球CCIE人数统计
  3. 企业数字化转型必备利器之微服务扩展
  4. 开源大数据周刊-第46期
  5. 数据管理与数据治理的区别
  6. 11月全球搜索引擎市场:百度份额突破30% 增势持续
  7. onvif协议规范与版本简介
  8. 09年最值得期待7大IT收购:思科收购VMware
  9. YYAsyncLayer 源码剖析:异步绘制
  10. 解读TIME_WAIT--你在网上看到的大多数帖子可能都是错误的