我正在测试我用PHP编写的日志模块。
在日志示例下面。
Dec 05 01:50:02 [info] REQ [1111111111111]:param = 1
Dec 05 01:50:02 [info] REQ [2222222222222]:param = 2
Dec 05 01:50:02 [info] RES [2222222222222]:res = 20
Dec 05 01:50:02 [info] RES [1111111111111]:res = 10
好的,我找到了uniqid()的解决方案。
但是它基于时间戳,因此它不是同一时间和同一台机器上唯一的巨大请求。
PHP不支持THREAD。 如果其他语言(如C,JAVA),最佳解决方案是使用[thread id]每个线程或进程,我猜。
关于PHP的任何想法?
抱歉英语不好。答案 0 :(得分:2)
首先,检查uniqid('', true)
是否提供了足够的熵以使其没有冗余。
其次,尝试使用sessions跟踪人员。这样您就可以单独识别人员和交易。
答案 1 :(得分:1)
您可以使用用户的用户ID。它们总是唯一的吗?为了获得更多的唯一性,请尝试哈希用户ID或其电子邮件ID以及附加当前的microtime并在日志文件中使用它。这将是最独特的即使用户发送重复请求,因为microtime将在连续请求之间明确地改变。
$id=$userid.$emailid.uniqid();
$uid=md5($str);
如果在小循环中使用,这可能是个大问题。因为在小循环内部,微缩胶片几乎不会改变。