基于UserID的用户内容文件夹结构,同时隐藏总用户


User content Folder Structure based on UserID while hiding total users

我试图找出一个文件夹结构用于存储用户内容,如图像,这将为大量的用户工作。我本来打算用…000/000/001(用户id 1) ....999每个文件夹的最大子文件夹数

但是我想要隐藏用户总数,从1开始很容易看到。我应该从349203480这样的随机数开始吗?我很困惑,怎么用这种方法把基于ID的文件夹弄出来。有没有更好/更容易的方法?

使用GUID:

  • http://php.net/manual/en/function.uniqid.php

根据PHP手册:

<?php
/* A uniqid, like: 4b3403665fea6 */
 printf("uniqid(): %s'r'n", uniqid());
/* We can also prefix the uniqid, this the same as 
 * doing:
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s'r'n", uniqid('php_'));
/* We can also activate the more_entropy parameter, which is 
 * required on some systems, like Cygwin. This makes uniqid()
 * produce a value like: 4b340550242239.64159797
 */
printf("uniqid('', true): %s'r'n", uniqid('', true));
?>

创建唯一文件夹,创建唯一子文件夹。没有人,包括你自己,会知道你有多少……除非您正在对文件系统上的文件夹/子文件夹进行计数,或者正在维护对GUID

的实际用户引用。

嗯,最简单和最容易的方法就是你建议的。

另一种方法是在用户id后面附加一个随机数。

$userid = get_user_id();
$foldername = strval($userid) . strval(rand(1, 999));
//$foldername = 11, 231, ...

但是,当然,上面的方法有检查文件夹是否已经存在的开销。

第三种方法是对用户名/id使用简单的加密(例如rot13),并从那里附加文件夹计数。

$username = get_user_name();                 //Use the user id if you wish.
$next_folder_count = $last_folder_count + 1;
$foldername = str_rot13($username) . strval($next_folder_count);
//$foldername = hxcvf1, hxcvf2, ...

同样,您必须存储文件夹的计数,或者动态地从目录中获取它。最后一种方法的优点是,只需知道文件夹名,就可以找出它属于哪个用户。