用于生成随机ID并避免像Nodejs hat模块那样的冲突的PHP库

时间:2016-02-03 08:24:50

标签: php node.js

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

节点js。

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

console.log(rack());
console.log(rack());

任何PHP库?

4 个答案:

答案 0 :(得分:1)

  

使用生成唯一ID的uniqid()

试试这个:

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

答案 1 :(得分:1)

我建议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"; // i.e. 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"; // i.e. 11a38b9a-b3da-360f-9353-a5a725514269

    // Generate a version 4 (random) UUID object
    $uuid4 = Uuid::uuid4();
    echo $uuid4->toString() . "\n"; // i.e. 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"; // i.e. 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";

}

答案 2 :(得分:0)

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

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

你应该对GUIDS很好。

答案 3 :(得分:0)

试试uniqid()。它基于microtime()生成唯一标识符,并在unix和windows上运行。