Mit diesem fertigen PHP Snippet können Sie eine Unique Random ID generieren, welche nicht nur auf uniqid, sondern auch auf andere Faktoren basiert und angepasst werden kann
Code Snippet und Erklärung
Wir empfehlen die Nutzung als Public Function, da die Methode bereits eigenständig ist und ohne weitere Maßnahmen eingebunden werden kann:
/**
* @param string $prefix Add a prefix for more randomness
* @param int $length Add a custom length
* @return string $uniqueId32
*/
public function generateUniqueId(int $length = 32, string $prefix = '') {
$uniqueId = uniqid($prefix, true);
$ipAddress = $_SERVER['REMOTE_ADDR'];
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$hash = hash('sha256', $uniqueId . $ipAddress . $userAgent);
$substSelector = rand(0,($length -1));
$uniqueId32 = substr($hash, $substSelector, $length);
return $uniqueId32;
}
Damit die Verwendung in Ihrer IDE einfacher wird, haben wir bereits die Parameter definiert.
Der Aufruf läuft wie folgt:
$id = $this->generateUniqueId(); //Ohne Parameter - generiert ohne Prefix 32 Zeichen
$id = $this->generateUniqueId(10); //Generiert ohne Prefix 10 Zeichen
$id = $this->generateUniqueId(10, '283g092h3g'); //Generiert mit Prefix, 10 Zeichen