Nach der Online-Überprüfung gibt es viele Methoden
1. md5(time() . mt_rand(1,1000000));
Diese Methode weist eine gewisse Wahrscheinlichkeit einer Duplizierung auf
2. In PHP integrierte Funktion uniqid()
Die Funktion uniqid() generiert eine eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden.
Es gibt einen Satz in der w3school-Referenz manuelle Wörter: „Da es auf der Systemzeit basiert, ist die von dieser Funktion generierte ID nicht optimal. Um eine absolut eindeutige ID zu generieren, verwenden Sie bitte die Funktion md5().“
Die folgende Methode liefert ähnliche Ergebnisse: 5DDB650F-4389-F4A9-A100-501EF1348872
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 PHPs eigene Methode zum Generieren einer eindeutigen ID. Sie scheint danach verschwunden zu sein PHP5.
3. Das offizielle uniqid()-Referenzhandbuch enthält von Benutzern bereitgestellte Methoden und die Ergebnisse sind ähnlich: {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; }
Weitere Lösungen zum Generieren eindeutiger IDs in PHP Für methodenbezogene Artikel beachten Sie bitte die chinesische PHP-Website!