La fonction PHP uniqid() peut être utilisée pour générer un identifiant unique qui n'est pas répété, basé sur l'horodatage actuel en microsecondes. En cas de concurrence élevée ou d'intervalles extrêmement courts (comme le code de boucle), une grande quantité de données en double apparaîtra. Même si le deuxième paramètre est utilisé, il sera répété. La meilleure solution est de combiner la fonction md5 pour générer un identifiant unique.
Description
string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )
Obtenez un identifiant unique préfixé basé sur l'heure actuelle en microsecondes.
Paramètres
prefix
Paramètres utiles. Par exemple : si vous êtes sur plusieurs hôtes, un identifiant unique peut être généré dans la même microseconde. Si
préfixe est vide, la longueur de la chaîne renvoyée est 13. Si more_entropy est TRUE, la longueur de la chaîne renvoyée est 23.
more_entropy
Si défini sur TRUE, uniqid() ajoutera une congruence supplémentaire à la fin de la chaîne renvoyée (en utilisant un générateur congruentiel linéaire combiné). Rendre l'identifiant unique plus unique.
Méthode PHP uniqid() 1 pour générer des identifiants uniques non répétitifs
Cette méthode générera une grande quantité de données en double L'exécution du code PHP suivant entraînera l'identifiant unique. généré par l'index du tableau, qui correspond à La valeur de l'élément est le nombre de fois que l'identifiant unique est répété.
<?php $units = array(); for($i=0;$i<1000000;$i++){ $units[] = uniqid(); } $values = array_count_values($units); $duplicates = []; foreach($values as $k=>$v){ if($v>1){ $duplicates[$k]=$v; } } echo '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
PHP uniqid() Méthode 2 pour générer des identifiants uniques uniques
Cette méthode génère beaucoup moins d'identifiants uniques en double.
<?php $units = array(); for($i=0;$i<1000000;$i++){ $units[] = uniqid('',true); } $values = array_count_values($units); $duplicates = []; foreach($values as $k=>$v){ if($v>1){ $duplicates[$k]=$v; } } echo '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
PHP uniqid() Méthode 3 pour générer des identifiants uniques non dupliqués
Il n'y a pas de duplication dans l'identifiant unique généré par cette méthode.
<?php $units = array(); for($i=0;$i<1000000;$i++){ $units[]=md5(uniqid(md5(microtime(true)),true)); } $values = array_count_values($units); $duplicates = []; foreach($values as $k=>$v){ if($v>1){ $duplicates[$k]=$v; } } echo '<pre class="brush:php;toolbar:false">'; print_r($duplicates); echo ''; ?>
Méthode PHP uniqid() quatre pour générer des identifiants uniques qui ne sont pas répétés
Utilisez la fonction session_create_id() pour générer des identifiants uniques Après des tests réels, il a été constaté que même. si session_create_id() est appelé de manière cyclique 100 millions de fois, il n'y a pas eu de duplication.
php session_create_id() est une nouvelle fonction de PHP 7.1. Elle est utilisée pour générer un identifiant de session. Elle ne peut pas être utilisée dans les versions inférieures.
Le contenu ci-dessus est à titre de référence uniquement !
Tutoriel vidéo recommandé : Tutoriel vidéo PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!