1. md5(time() . mt_rand(1,1000000));
這種方法有一定的概率會出現(xiàn)重復
2、php內置函數(shù)uniqid()
uniqid() 函數(shù)基于以微秒計的當前時間,生成一個唯一的 ID.
w3school參考手冊有一句話:"由于基于系統(tǒng)時間,通過該函數(shù)生成的 ID 不是最佳的浓瞪。如需生成絕對唯一的 ID,請使用 md5() 函數(shù)"图张。
<?php
echo uniqid();
echo uniqid();
echo uniqid();
?>
輸出:
4bfd0e375396b
4bfd0e3753981
4bfd0e3753983
3跛溉、結合md5()函數(shù)生成一個唯一ID
<?php
echo md5(uniqid());
?>
輸出:dfbc5c8c6438de075da28b3c8a413fd0
4、手動去處理砰碴,官方給予的案例躏筏。
public function create_guid($namespace = '') {
static $guid = '';
$uid = uniqid("", true);
$data = $namespace;
$data .= $_SERVER['REQUEST_TIME'];
$data .= $_SERVER['HTTP_USER_AGENT'];
$data .= $_SERVER['LOCAL_ADDR'];
$data .= $_SERVER['LOCAL_PORT'];
$data .= $_SERVER['REMOTE_ADDR'];
$data .= $_SERVER['REMOTE_PORT'];
$hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
$guid = '{' .
substr($hash, 0, 8) .
'-' .
substr($hash, 8, 4) .
'-' .
substr($hash, 12, 4) .
'-' .
substr($hash, 16, 4) .
'-' .
substr($hash, 20, 12) .
'}';
return $guid;
}
返回結果類似:E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7