PHP如何獲取用戶每次操作的HTTP 請求的唯一性的request id 呢?
無論多少人,要求每次點擊 都是全局唯一的ID
你好,LZ:
看到你的問題,我首先想到的是主鍵id的概念, 它可以唯一標(biāo)識每條記錄。所以樓主的需求就是要找到一個遞增id,用于標(biāo)識每一個請求。
方案一:(利用PHP內(nèi)置全局變量$_SERVER中的參數(shù)REQUEST_TIME)
<?php
date_default_timezone_set('PRC');
sleep(5);
echo date('Y-m-d H:i:s',time()); //獲取當(dāng)前系統(tǒng)的時間戳
echo '<hr/>';
echo date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']);//獲取本次請求的開始時間
輸出結(jié)果:
2016-04-05 11:27:06
2016-04-05 11:27:01 //請求時間,與休眠后輸出date相差5秒,符合預(yù)期
注:如果請求量巨大,秒級別無法標(biāo)識,可以用REQUEST_TIME_FLOAT參數(shù),可以精確到微秒級。
方案二: 利用php內(nèi)置函數(shù)uniqid() ,生成唯一id。 或者這樣子來生成: md5(time()).mt_rand(1,1000)
1,開啟session,$sid = session_id();
2.獲取當(dāng)前請求的時間 $rid = $_SERVER['REQUEST_TIME_FLOAT']
3.唯一請求等于 $unqidId = md5($sid . $rid)
//(如果還覺得不可靠再加個隨機數(shù))