Php 隐藏总用户时基于用户ID的用户内容文件夹结构

Php 隐藏总用户时基于用户ID的用户内容文件夹结构,php,sqlite,userid,directory-structure,Php,Sqlite,Userid,Directory Structure,我正试图找出一个文件夹结构,用于存储用户内容,如图像,这将适用于大量用户。我本来打算和一些像000/000/001(用户id 1)…每个文件夹的最大子文件夹数为999 但是我想隐藏用户总数,从1开始很容易看到。我应该从一些像349203480这样的随机数开始吗?我对如何通过这种方式根据ID计算文件夹感到困惑。有更好/更简单的方法吗?使用GUID: 根据PHP手册: <?php /* A uniqid, like: 4b3403665fea6 */ printf("uniqid():

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

但是我想隐藏用户总数,从1开始很容易看到。我应该从一些像349203480这样的随机数开始吗?我对如何通过这种方式根据ID计算文件夹感到困惑。有更好/更简单的方法吗?

使用GUID:

根据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));
?>

好吧,最简单、最简单的方法就是你建议的方法。使用随机数预开始计数用户

另一种方法是在用户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, ...
同样,您必须存储文件夹数,或者从目录中动态获取。最后一种方法的优点是,只需知道foldername,您就可以找到它属于哪个用户