使用PHP可以在目录中搜索文件名模式



我在服务器上有一个包含数百万个文件的文件夹

文件名将为LMN20110305.txt pattern.

如果我试图在四月搜索文件,我现在正在阅读目录

获取文件名并使用子字符串检查它大于或小于

2011040120110430

在这种情况下,它将读取整个目录,这需要花费很多时间。我也在考虑检查创建日期。

glob的性能如何-查找匹配模式的路径名

谁有更好的建议?

愚蠢的怀疑!有没有可能不搜索整个目录就能找到文件?

glob()将执行良好。它在标准库中是有原因的,使用它吧!

我的理解是,glob()几乎直接映射到系统C库中的glob()函数,这意味着它很可能比您自己编写的任何函数都更有效。唯一的限制是内存:如果你用完了内存,你要么需要给PHP更多的内存,要么需要重新组织。

如果你遇到内存问题,如何更好地组织你的文件?一个文件夹里有一百万个文件太多了。以某种方式组织它们。如果你的文件是有日期的,试着按年(也可能是月)来组织它们,就像这样:

basedir/
|---/2011
|---/2010
etc.

这是一个文件系统问题,而不是PHP问题。除了通过通常的系统调用之外,PHP没有特殊的方法来读取目录。您需要更改存储模式,一种适合传入数据分布的树状结构。

相关内容

  • 没有找到相关文章