用于生成随机ID并避免类似Nodejs帽子模块的冲突的PHP库

是否有任何库可用于在PHP中生成随机ID。 在Nodejs中,我们有hat模块来生成随机ID

节点js。

 var hat = require('hat'); var rack = hat.rack(); console.log(rack()); console.log(rack()); 

任何PHP库?

使用uniqid()生成一个唯一的ID

尝试这个:

 <?php echo uniqid().'<br>'; echo uniqid().'<br>'; echo uniqid().'<br>'; echo uniqid().'<br>'; ?> 

我build议https://github.com/ramsey/uuid

 <?php require 'vendor/autoload.php'; use Ramsey\Uuid\Uuid; use Ramsey\Uuid\Exception\UnsatisfiedDependencyException; try { // Generate a version 1 (time-based) UUID object $uuid1 = Uuid::uuid1(); echo $uuid1->toString() . "\n"; // ie e4eaaaf2-d142-11e1-b3e4-080027620cdd // Generate a version 3 (name-based and hashed with MD5) UUID object $uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net'); echo $uuid3->toString() . "\n"; // ie 11a38b9a-b3da-360f-9353-a5a725514269 // Generate a version 4 (random) UUID object $uuid4 = Uuid::uuid4(); echo $uuid4->toString() . "\n"; // ie 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a // Generate a version 5 (name-based and hashed with SHA1) UUID object $uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net'); echo $uuid5->toString() . "\n"; // ie c4a760a8-dbcf-5254-a0d9-6a4474bd1b62 } catch (UnsatisfiedDependencyException $e) { // Some dependency was not met. Either the method cannot be called on a // 32-bit system, or it can, but it relies on Moontoast\Math to be present. echo 'Caught exception: ' . $e->getMessage() . "\n"; } 

http://php.net/manual/en/function.com-create-guid.php

请注意,通过随机生成ID,总是有碰撞的机会(即使它几乎等于0)。

你应该对GUIDS很好。

尝试uniqid() 。 它根据microtime()生成唯一的标识符,并且可以在unix和windows上运行。