我有近 100 万张照片从“1”开始自动递增。
所以,我有以下内容:
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
....
1000000.jpg
目前,我将所有这些文件都放在一个 Ext4 linux 目录中。
如您所想,文件系统非常慢。
我如何使用 PHP 创建一种算法,将我的图像划分到一个目录结构中,以便每个目录中的对象直接明显减少。
例如:
1000/1.jpg
1000/2.jpg
1000/3.jpg
...
1000/999.jpg
1000/1000.jpg
2000/1001.jpg
2000/1002.jpg
2000/1003.jpg
2000/1999.jpg
我如何将图像名称 (id) 划分/取模/内爆/移动到像上面这样的文件结构中?
更新:
基本上,我想创建一个执行以下操作的 PHP 函数。
- 只接受正整数,不包括 0。
- 对于值 1-999,返回 0
- 对于值 1000-1999,返回 1000
- 对于值 10,000-10,999,返回 10000
- 对于值 25,000-25,999,返回 25000
最佳答案
当我过去做过这样的事情时,我从最右边的数字创建子目录,这样随着它们的增加,它们会更均匀地添加到所有目录中:
4/3/1234.jpg
5/3/1235.jpg
6/3/1236.jpg
7/3/1237.jpg
8/3/1238.jpg
回复你的评论:
how would I do that with PHP?
这是一个 PHP 函数示例:
function NumToPath($n)
{
$n = (int) $n;
if ($n <= 0) {
return false;
}
$n = str_pad($n, 7, "0", STR_PAD_LEFT);
preg_match("/.*(\d)(\d)$/", $n, $matches);
$path = $matches[2] . "/" . $matches[1] . "/" . $n . ".jpg";
return $path;
}
关于php - 为自动增量图像的文件系统结构创建算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552282/