Générer un uuid avec PHP : limiter sa longueur

Pour générer un identifiant unique avec PHP, on a uniqid(). Très bien. Mais en réalité on ne peut pas fixer le nombre de caractères. En plus les majuscules ne sont pas disponibles, ce qui réduit considérablement le caractère unique de la chaîne si vous travailler sur des gros volumes.

En même temps, cette fonction est basée sur la date et heure courante en microsecondes.

Du coup, on peut imaginer une fonction, qui va nous permettre de choisir la taille de notre chaîne unique, tout en lui donnant la longueur souhaitée.

function uuid($length)
{
    // allowed characters
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    // make sure we have enough length
    while (strlen($chars) < $length) {
        $chars .= $chars;
    }
    return substr(str_shuffle($chars), 0, $length);
}

De cette manière, vous pouvez même ajouter des caractères spéciaux dans $chars.

Vous pouvez ensuite construire votre uuid sur ce type de format :

'prefix'. uuid(25);
metrogeek

Laisser un commentaire