• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHPGUID和UUID生成类

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 <?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));
}
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
谨慎使用php的strtotime()函数发布时间:2022-07-10
下一篇:
PHPstrstr()字符串匹配函数发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap