Heim  >  Artikel  >  php教程  >  PHP下生成非重复的guid

PHP下生成非重复的guid

WBOY
WBOYOriginal
2016-06-06 19:43:38970Durchsuche

PHP在多进程运行的情况下,如果不采用内存锁或者文件锁,基本没办法能解决 生成 唯一Id的问题。试过了静态变量、单例模式等等。查询到php里的uniqid()函数,最后还是找到了一个折中方式,虽然还是有可能出现 重复 的id,基本上可以在忍受访问内,唯一不好就

     PHP在多进程运行的情况下,如果不采用内存锁或者文件锁,基本没办法能解决生成唯一Id的问题。试过了静态变量、单例模式等等。查询到php里的uniqid()函数,最后还是找到了一个折中方式,虽然还是有可能出现重复的id,基本上可以在忍受访问内,唯一不好就是id没有任何规律。

    /**
     * 获取唯一的guid
     * @return string 32位字符串
     */
    public static function  get_md5_id(){
        return md5(uniqid("", true));
    }

  虽然php自带的uniqid()函数基本不会出现重复,但没办法直接只用,只能md5下生成32位的16进制码,算是投机取巧了。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn