• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP生成唯一ID的四种方法介绍

PHP生成唯一ID的四种方法介绍

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP生成唯一ID,方法介绍等相关知识,希望对您有所帮助

PHP生成唯一ID的四种方法介绍


工作中使用到唯一ID的场景非常多,如临时缓存文件、临时变量、临时安全码等。

uniqid()函数基于以微妙计的当前时间,生成一个唯一的ID。由于生成唯一ID与微妙时间关联,因此生成ID的唯一性非常可靠。

生成的唯一ID默认返回的字符串有13个字符长,如果再结合MD5()函数,生成的唯一ID可靠性将更高,这种生成的ID比随机性的ID最大优点在于可实现排序,特别是一些需要存储在数据库中的值。当然在这里也可以加入随机数。

下面主要介绍4种生成唯一ID的方法:

1、MD5

md5(time().mt_rand(1,1000000))

注意:这种方法有一定的概率会出现重复

2、php内置函数uniqid()

uniqid()函数基于以微妙的当前时间,生成一个唯一的ID。

echo uniqid();echo uniqid();echo uniqid();OUTPUT:   5a4b62dd4aeea   5a4b62dd4aff7   5a4b62dd4b069

w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数"。

3、结合md5()函数生成一个唯一的ID

     echo md5(uniqid());OUTPUT:    0ac3d6e99b7f5290c93d730eaf9d7d94

4、手动去处理,官方给予的案例

public function create_guid($namespace = '') {     static $guid = '';    $uid = uniqid("", true);    $data = $namespace;    $data .= $_SERVER['REQUEST_TIME'];    $data .= $_SERVER['HTTP_USER_AGENT'];    $data .= $_SERVER['LOCAL_ADDR'];    $data .= $_SERVER['LOCAL_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;}

返回结果类似:E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP生成唯一ID的四种方法介绍

相关文章

  • php怎么将ppt转jpg图片
  • 如何利用CSS来美化滑动输入条?自定义样式方法浅析
  • Day.js :一个非常好用的轻量的处理时间和日期库
  • 介绍Thinkphp5之Workerman
  • thinkphp5与laravel的区别是什么
  • thinkphp模型定义
  • JavaScript中Number()方法的两种用法
  • Discuz论坛游客无法查看文章中的图片怎么办?
  • Photoshop设计发光生锈的艺术字教程
  • 安装apache后如何添加代理模块

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 织梦DedeCMS后台文件列表按文件名排序的方法
    • Phpcms V9栏目循环调用采用IF判断自定义不显示指定
    • 带你搞懂uniapp跨域问题(实例详解)
    • vue3 watch和watchEffect的使用以及有哪些区别
    • 浅谈Nodejs中的callback回调
    • PS教程:如何打造逼真的冰冻效果
    • JavaScript如何替换中间内容
    • 由JS实现的织梦cms版3D球面标签云 效果与flash版的
    • Linux下查看PHP配置文件php.ini的位置
    • php中get_object_vars()在数组的实例用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有