我想知道,没有使用任何类型的用户信息(id,昵称,年龄等),在大型数据库中使用php 确保文件名唯一性的最佳方法是什么很多用户之间流量很大,很可能同时?我使用的是$file = time()
,但我想知道,只要两个用户可以同时检查此代码(大型大型,10000个用户),这是否足够同时和相同的功能同时运行200次。
答案 0 :(得分:1)
时间不够独特,所有冲突都是在同一秒内跑了两次。
尽管名称如此,但您可以使用tempnam在系统临时目录之外创建文件,因此它们将是永久性的。
使用tmpfile创建的文件是临时文件,最迟在程序结束时删除。
答案 1 :(得分:1)
答案 2 :(得分:0)
根据关联的数据库记录所具有的ID命名文件。您的数据库自动保证此ID的唯一性。没有必要重新发明轮子。
答案 3 :(得分:0)
除了使用db row insert id
之外,还可以使用当前时间戳(可能会附加microtime)到您的文件名答案 4 :(得分:0)
超越仅命名文件的上下文,我使用以下调用为电子邮件确认哈希等生成随机字符串,但也可以在您的情况下使用。
$random = bin2hex(mcrypt_create_iv(4, MCRYPT_DEV_URANDOM));
答案 5 :(得分:0)
以下是我通常用于随机字符串的内容,然后您可以根据需要将文件类型附加到其末尾
sha1(uniqid(mt_rand(), TRUE));
答案 6 :(得分:-1)
microtime()怎么样?对于类固醇来说就像 time()。
答案 7 :(得分:-1)
同时使用时间戳和IP地址。