Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung, wie man eine eindeutige ID in PHP generiert

Detaillierte Erklärung, wie man eine eindeutige ID in PHP generiert

零下一度
零下一度Original
2017-06-23 11:39:192900Durchsuche

PHP generiert eine eindeutige ID. Nach der Online-Überprüfung gibt es viele Methoden

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

Diese Methode hat bestimmte Wahrscheinlichkeit wird wiederholt

2. PHP-integrierte Funktion uniqid()

Die Funktion uniqid() generiert eine eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden.

Dort ist ein Satz im w3school-Referenzhandbuch: „Da sie auf der Systemzeit basiert, ist die von dieser Funktion generierte ID nicht optimal. Wenn Sie eine absolut eindeutige ID generieren müssen, verwenden Sie bitte die Funktion md5().“

Die folgende Methode liefert ähnliche Ergebnisse: 5DDB650F-4389-F4A9-A100-501EF1348872 Weitere Informationen finden Sie in meinem Blog-Beitrag: PHP-Beispiel

function uuid() {if (function_exists ( 'com_create_guid' )) {return com_create_guid ();
    } else {mt_srand ( ( double ) microtime () * 10000 ); //optional for php 4.2.0 and up.随便数播种,4.2.0以后不需要了。$charid = strtoupper ( md5 ( uniqid ( rand (), true ) ) ); //根据当前时间(微秒计)生成唯一id.$hyphen = chr ( 45 ); // "-"$uuid = '' . //chr(123)// "{"substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );//.chr(125);// "}"return $uuid;
    }
}

com_create_guid() ist die mit PHP gelieferte Methode zum Generieren einer eindeutigen ID, scheint nach PHP5 verschwunden zu sein.
3. Das offizielle uniqid()-Referenzhandbuch enthält von Benutzern bereitgestellte Methoden mit ähnlichen Ergebnissen: {E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

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;
  }

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie man eine eindeutige ID in PHP generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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