Php 隐藏总用户时基于用户ID的用户内容文件夹结构
我正试图找出一个文件夹结构,用于存储用户内容,如图像,这将适用于大量用户。我本来打算和一些像000/000/001(用户id 1)…每个文件夹的最大子文件夹数为999 但是我想隐藏用户总数,从1开始很容易看到。我应该从一些像349203480这样的随机数开始吗?我对如何通过这种方式根据ID计算文件夹感到困惑。有更好/更简单的方法吗?使用GUID: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():
<?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,您就可以找到它属于哪个用户