2010-10-05 31 views
1

Comment les ID alphanumériques peuvent-ils être générés dans PHP ou AS3, etc., au lieu de l'ID numérique auto incrémenté classique. YouTube l'utilise pour ses ID vidéo, par exemple. Facebook génère de longues chaînes alphanumériques pour les noms d'images téléchargés et ainsi de suite.Génération d'ID alphanumériques (chaînes uniques)

EDIT: Ce n'est pas comment je produis les cordes en soi, mais comment puis-je générer les uniques comme la colonne AUTO_INCREMENT dans une colonne MySQL serait.

+0

Dupliquer de http://stackoverflow.com/question s/2288174/quoi-est-le-meilleur-moyen-de-créer-aléatoire-mysql-id-using-php, http://stackoverflow.com/questions/1041509/php-best-random-numbers, http: //stackoverflow.com/questions/2288174/what-is-the-best-way-to-create-random-mysql-id-using-php et plus encore. – Lekensteyn

Répondre

1

En PHP, vous pouvez utiliser base_convert pour passer à une base de nombre plus grande (jusqu'à 36, le format sera 0-9a-z, avec un étant égal à 10 et ainsi de suite).

Cordialement, Alin

1

Pour garantir l'unicité vous devez venir avec l'ID du côté du serveur. Ensuite, il peut s'agir par exemple d'une cellule MySQL que vous utilisez pour obtenir le numéro suivant. Si vous avez un numéro 64 bits, vous pouvez également générer le numéro lorsque la page est chargée, même si à la fin un identifiant unique est nécessaire ou non, si vous avez toujours besoin de l'intégrer dans le fichier JavaScript. Ensuite, si l'utilisateur par exemple enregistre les données, vous pouvez stocker l'ID avec lui. Vous n'avez pas besoin de garder les numéros d'identification inutilisés tant que vous vous assurez que le compteur est incrémenté de manière fiable, donc en utilisant MySQL pour cela, vous avez juste besoin d'une cellule pour toujours incrémenter en plus des données réelles que vous enregistrez. Avec 64 bits, vous ne manquerez jamais d'ID et vous pourrez réorganiser les bits si vous voulez que le prochain ID soit moins prévisible. Si un type de sécurité est nécessaire, vous devriez vous pencher davantage sur un mappage 1: 1 des numéros en cours vers des numéros moins prévisibles. En ce qui concerne l'emplacement où conserver le numéro incrémenté, il peut s'agir d'une ligne dans une base de données SQL ou d'un simple fichier texte si vous gérez le verrouillage, ou si vous pouvez exécuter un programme sur le serveur, vous pouvez communiquer avec lui. n'importe quel type d'IPC pour obtenir de nouveaux numéros. Assurez-vous simplement que si le serveur redémarre, la séquence continuera au moins d'où il a été laissé.

1

AS3

import mx.utils.UIDUtil; 
var uuid:String = UIDUtil.createUID() 

PHP

$unique = md5(uniqid()); // 32 characters long 
$unique = sha1(uniqid()); // 40 characters long