Position actuelle: Accueil> Derniers articles> Comment combiner la fonction STR_SHUXH et la fonction Uniqid pour générer un identifiant unique? Explication des étapes détaillées

Comment combiner la fonction STR_SHUXH et la fonction Uniqid pour générer un identifiant unique? Explication des étapes détaillées

gitbox 2025-09-22

Comment combiner la fonction STR_SHUXH et la fonction Uniqid pour générer un identifiant unique? Explication des étapes détaillées

En PHP, nous devons souvent générer des identificateurs uniques, comme dans des scénarios tels que l'enregistrement des utilisateurs et la génération de numéros de commande. La fonction Uniqid () et la fonction str_shuffle () sont deux fonctions très utiles dans PHP. Ils génèrent chacun des valeurs uniques et des valeurs aléatoires, mais nous pouvons les utiliser en combinaison pour générer un identifiant unique qui contient à la fois des horodatages et des éléments aléatoires.

Ce qui suit expliquera en détail comment combiner ces deux fonctions pour générer un identifiant unique.

1. Comprendre la fonction uniqid

La fonction uniqid () est utilisée pour générer un ID unique basé sur l'heure actuelle (niveau de microseconde). Son utilisation de base est la suivante:

 <span><span><span class="hljs-variable">$id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$id</span></span><span>;
</span></span>

Après l'exécution, Uniqid () générera un identifiant unique basé sur l'heure actuelle. Par défaut, il génère une chaîne en fonction de l'horodatage actuel. Vous pouvez également choisir de passer une chaîne de préfixe:

 <span><span><span class="hljs-variable">$id</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">'prefix_'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$id</span></span><span>;
</span></span>

L'ID généré est à base de microsecondes, donc dans la plupart des cas, il garantit l'unicité. Mais sa génération s'appuie sur des horodatages, et en théorie, la même pièce d'identité peut être générée si les deux appels sont très proches.

2. Comprendre la fonction STR_SHUXH

La fonction STR_SHUXH () peut perturber au hasard l'ordre de caractères dans une chaîne. Son utilisation est très simple:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"abcdef"</span></span><span>;
</span><span><span class="hljs-variable">$shuffled</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_shuffle</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$shuffled</span></span><span>;
</span></span>

Cela renvoie une nouvelle chaîne avec des caractères aléatoires et le résultat de chaque appel est différent.

3. Combinez Uniqid et Str_Shuffle

Pour améliorer la sécurité et l'aléatoire de la génération d'identifiants uniques, nous pouvons combiner l'ID généré par Uniqid () avec les caractères aléatoires générés par str_shuffle () . De cette façon, nous assurons non seulement l'unicité de l'horodatage, mais introduisons également le caractère aléatoire, ce qui rend l'identifiant généré plus complexe.

Par exemple, le code suivant combine l'ID généré par Uniqid () avec des lettres et des nombres aléatoires:

 <span><span><span class="hljs-comment">// Générer unique en fonction de l&#39;heure actuelleID</span></span><span>
</span><span><span class="hljs-variable">$uniqid</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>();

</span><span><span class="hljs-comment">// Créer une chaîne aléatoire,Peut inclure des lettres et des numéros</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_shuffle</span></span><span>(</span><span><span class="hljs-string">"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"</span></span><span>);

</span><span><span class="hljs-comment">// Intercepter une longueur de chaîne aléatoire(Par exemple8Peu)</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$random_string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);

</span><span><span class="hljs-comment">// combinaisonuniqidet des cordes aléatoires,Générer l&#39;identifiant unique final</span></span><span>
</span><span><span class="hljs-variable">$unique_id</span></span><span> = </span><span><span class="hljs-variable">$uniqid</span></span><span> . </span><span><span class="hljs-variable">$random_string</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$unique_id</span></span><span>;
</span></span>

4. Optimisation supplémentaire

Pour nous assurer que l'identifiant est plus aléatoire et unique, nous pouvons également ajouter des éléments plus aléatoires ou ajuster la façon dont il est généré. Par exemple, utilisez le deuxième paramètre d' Uniqid () pour le rendre plus aléatoire, tout en rendant la chaîne aléatoire générée par str_shuffle () un peu plus:

 <span><span><span class="hljs-comment">// utiliseruniqid()Le deuxième paramètre pour augmenter le hasard</span></span><span>
</span><span><span class="hljs-variable">$uniqid</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-comment">// Créer une chaîne aléatoire plus longue</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_shuffle</span></span><span>(</span><span><span class="hljs-string">"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"</span></span><span>);

</span><span><span class="hljs-comment">// Intercepter la longueur d&#39;une chaîne aléatoire,Assurez-vous qu&#39;il a une certaine complexité</span></span><span>
</span><span><span class="hljs-variable">$random_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$random_string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">12</span></span><span>);

</span><span><span class="hljs-comment">// combinaisonuniqidet des cordes aléatoires</span></span><span>
</span><span><span class="hljs-variable">$unique_id</span></span><span> = </span><span><span class="hljs-variable">$uniqid</span></span><span> . </span><span><span class="hljs-variable">$random_string</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$unique_id</span></span><span>;
</span></span>

L'identifiant généré de cette manière contient un ID unique basé sur l'horodatage, tout en mélangeant une section aléatoire plus longue, garantissant la complexité et le hasard de l'identifiant.

5. Résumé

La façon de générer des identifiants uniques en combinaison avec Uniqid () et Str_Shuffle () peut assurer le caractère unique et le caractère aléatoire de l'ID en même temps. Uniqid () génère un ID unique basé sur l'horodatage actuel, tandis que str_shuffle () ajoute des caractères plus aléatoires à l'ID, ce qui rend l'identifiant plus sécurisé et plus difficile à prévoir. Cette méthode est particulièrement adaptée à une utilisation dans des scénarios où la haute sécurité et l'unicité sont nécessaires, telles que la génération de numéros de commande, les identifiants de session, etc.

Avec ces étapes simples, vous pouvez facilement générer un identifiant unique et aléatoire à l'aide de PHP.