Heim  >  Artikel  >  php教程  >  Generieren Sie eine eindeutige ID mit der PHP-Uniqid-Funktion

Generieren Sie eine eindeutige ID mit der PHP-Uniqid-Funktion

高洛峰
高洛峰Original
2016-12-28 15:32:221876Durchsuche

Die Anwendungsszenarien zum Generieren eindeutiger IDs sind sehr häufig, z. B. temporäre Cache-Dateinamen, temporäre Variablen, temporäre Sicherheitscodes usw. Die Funktion uniqid() generiert eine eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden. Da die Generierung einer eindeutigen ID an die Zeit im Mikrosekundenbereich gebunden ist, ist die Eindeutigkeit der ID sehr zuverlässig.

Die generierte eindeutige ID gibt standardmäßig eine Zeichenfolge mit einer Länge von 13 Zeichenfolgen zurück. Wenn das Präfix der eindeutigen ID nicht definiert ist, kann sie in Kombination mit md5( ) Funktion, Die Zuverlässigkeit der generierten eindeutigen ID ist höher. Der größte Vorteil dieser generierten ID besteht darin, dass sie sortiert werden kann, insbesondere für einige Werte, die in der Datenbank gespeichert werden müssen.

1. Funktionsprototyp

string uniqid ( [string prefix [, bool more_entropy]] )

kann das Präfix und die Länge der eindeutigen ID definieren

2. Version kompatibel

PHP 3 , PHP 4, PHP 5

3, grundlegende Verwendung und Beispiele für Funktionen

1, eine eindeutige ID generieren

<?php
echo uniqid();
?>

2. Kombinieren Sie die Funktion md5(), um eine eindeutige ID zu generieren

<?php
echo md5(uniqid());
?>

Ausgabe: dfbc5c8c6438de075da28b3c8a413fd0

3, mehrere generieren eindeutige IDs, aufgrund der Messung in Mikrosekunden

<?php
echo uniqid();
echo uniqid();
echo uniqid();
?>

🎜>

Den generierten Ergebnissen zufolge sind eindeutige IDs sortierbar.

Mit der Funktion uniqid() zum Generieren einer eindeutigen ID können sowohl temporäre als auch permanente eindeutige IDs (Speicherdatenbank) generiert werden.

ps: Mehrere Lösungen zum Generieren eindeutiger IDs in PHP

Der folgende Herausgeber hat drei Lösungen für Sie zusammengestellt, die spezifischen Inhalte sind wie folgt:

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

Diese Methode hat eine gewisse Duplizierungswahrscheinlichkeit


2 PHP integrierte Funktion uniqid()

uniqid(). Die Funktion generiert eine eindeutige ID basierend auf der aktuellen Zeit in Mikrosekunden. Im w3school-Referenzhandbuch gibt es einen Satz: „Da sie auf der Systemzeit basiert, ist die von dieser Funktion generierte ID nicht optimal.“ Sie müssen eine absolute ID generieren. Für eine eindeutige ID verwenden Sie die Funktion „md5()“.

Die folgende Methode gibt ähnliche Ergebnisse zurück: 5DDB650F-4389-F4A9-A100-501EF1348872

com_create_guid() kommt mit PHP The Die Methode zur Generierung einer eindeutigen ID scheint nach PHP5 verschwunden zu sein.

3. Das offizielle uniqid()-Referenzhandbuch enthält von Benutzern bereitgestellte Methoden und die Ergebnisse sind ähnlich: {E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

function uuid() {
  if (function_exists ( &#39;com_create_guid&#39; )) {
    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 = &#39;&#39; . //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;
  }
}

Weitere Artikel zur Verwendung der PHP-Uniqid-Funktion zum Generieren einer eindeutigen ID finden Sie auf der chinesischen PHP-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