php - 为自动增量图像的文件系统结构创建算法

标签 php algorithm math

我有近 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/

相关文章:

algorithm - 统一整数除法器

php - session 哈希大小重要吗?

php - Yii:如何动态呈现部分 JavaScript 小部件

php - 在生产代码中使用系统函数

php - 为什么我的表单没有将数据提交到数据库中?

c++ - 使用加法、减法和连接将数字组合成给定数字的方法

java - 在 Java 和 C 中,负数 Mod 给出负结果

performance - 给定一个矩形内的点,确定最接近该点的边

Java : BigDecimal - Print the number has input

php - Jquery 检查元素是否存在以及条件是否存在