PHP如何获取用户每次操作的HTTP 请求的唯一性的request id 呢?

WBOY
Freigeben: 2016-06-06 20:12:50
Original
2920 Leute haben es durchsucht

PHP如何获取用户每次操作的HTTP 请求的唯一性的request id 呢?
无论多少人,要求每次点击 都是全局唯一的ID

回复内容:

PHP如何获取用户每次操作的HTTP 请求的唯一性的request id 呢?
无论多少人,要求每次点击 都是全局唯一的ID

每次一个请求过来,你都生成唯一的 id,可以作为这个 request 的唯一 id,可以使用 uuid or guid

你好,LZ:
看到你的问题,我首先想到的是主键id的概念, 它可以唯一标识每条记录。所以楼主的需求就是要找到一个递增id,用于标识每一个请求。

<code>方案一:(利用PHP内置全局变量$_SERVER中的参数REQUEST_TIME)

   <?php date_default_timezone_set('PRC');
    
    sleep(5);
    echo date('Y-m-d H:i:s',time()); //获取当前系统的时间戳
    
    echo '<hr/>';
    
    echo date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']);//获取本次请求的开始时间
</code>
Nach dem Login kopieren

输出结果:

<code>2016-04-05 11:27:06 
2016-04-05 11:27:01  //请求时间,与休眠后输出date相差5秒,符合预期

</code>
Nach dem Login kopieren

注:如果请求量巨大,秒级别无法标识,可以用REQUEST_TIME_FLOAT参数,可以精确到微秒级。

方案二: 利用php内置函数uniqid() ,生成唯一id。 或者这样子来生成: md5(time()).mt_rand(1,1000)

<code><?php echo $_SERVER['REQUEST_TIME_FLOAT'];</code></code>
Nach dem Login kopieren

phpsessid

1,开启session,$sid = session_id();
2.获取当前请求的时间 $rid = $_SERVER['REQUEST_TIME_FLOAT']
3.唯一请求等于 $unqidId = md5($sid . $rid) //(如果还觉得不可靠再加个随机数)

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!