如何在基于 PHP 中的已知 ID 的目录中查找文件


how to find a file in a directory based on a known id in php?

我在服务器上的文件夹中有一些图像:

/9_123456.jpg
/10_123457.jpg
/21_123458.jpg
/14_123459.jpg
...

此外,我还有一个保存这些文件名的数据库。

id    file
9     9_123456.jpg
10    10_123457.jpg
21    21_123458.jpg
14    14_123459.jpg

此时我正在做的是查询图片名称并将其显示在网页上。

问题是我有数百万张图片,有时这些图片需要一段时间才能回来,特别是如果我必须将该表与其他一些表格连接起来。

我想做的是忽略该数据库表并编写一个 php 函数,让我得到这样的图片:

look in that directory and find a pic that begins with 9, or 10 , or whatever, because i know that number. some kind of a regexp.

我的问题是,这种方法会比查询更快吗?我将如何查找该文件?

希望我把自己说得足够清楚。

噗嗤

有 glob 可以帮助你:试试glob($id.'_*.jpg');

性能取决于您的系统。一般来说:在Windows上,在Unices YMMV上它会变慢(由于*语义的构建方式)。我在 Linux 和 ReiserFS 上体验到了出色的结果,在 Linux 和 ext* 上也体验到了非常有用的结果。如果访问了许多图像,则很可能您在缓存中具有该目录。不过请注意,记忆压力是其中的一个因素!