【发布时间】:2012-02-20 04:06:04
【问题描述】:
这个问题是我优化图像文件夹/目录项目的下一步,并确保在未将优化后的图像移动到新目录的情况下不要重新优化已经优化的图像。我在这里发布了一个问题How to avoid Optimizing images that are already optimized with PHP?
我的应用程序是一个用 PHP 编写的命令行工具,它包含多个图像优化工具并递归地扫描提供的目录并通过适当的优化程序运行所有图像。
现在,如果我有一个包含 200 张图像的文件夹并运行我的应用程序,它会尝试优化所有 200 张图像,这非常耗时。假设我在项目中添加了另外 5 个图像,并且我需要再次运行该应用程序,它现在将优化所有 205 个图像,而不仅仅是 5 个新图像。这就是我要解决的问题。我的想法是在图像文件夹中放置某种文件/数据库,当我的应用程序运行时,它将首先读取此文件中的所有图像,如果图像在此文件中,则它已经被优化我们不需要重新优化它。因此,在我的示例中,将只运行 5 个新图像,因为它们不在文件中。完成后,这 5 个新图像将合并到此文件中,因此在我的应用程序的第 3 次运行时,所有 205 个图像都将被跳过,因为它们已经被优化并添加到文件/数据库中。
我认为这将是一个非常好的方法,在性能方面,但我愿意接受所有想法,以提供更好的方法,甚至改进我当前的想法?
虽然要考虑一些问题,因为我的应用程序递归地运行提供的目录,如果我有一个包含 20 个图像和 8 个其他子文件夹的文件夹,并且这些子文件夹都有图像并且其中一些子文件夹有子文件夹同样,然后运行根提供的文件夹下的所有图像,无论它在层次结构中有多深。所以我不确定我是否需要在每个子文件夹下有一个单独的文件/数据库,列出每个子文件夹下已经处理的文件,或者根文件夹下的 1 个文件/数据库是否足够好,只要它具有相对于根文件夹的文件路径。
其他想法是,如果图像被删除,我是否需要以某种方式从该文件/数据库中删除它,或者我应该不打扰,因为它可能不会影响任何东西?
我的主要问题是,这听起来像是一个好的解决方案吗?图像文件夹中的文件或数据库类型文件列出已优化的文件?如果您认为是,我应该如何创建这个文件,它应该是一个简单的文本文件,每行有 1 个带有路径的图像文件,还是一个 XML 文件或什么类型的文件,PHP 可能必须读取这些文件内容作为数组存储到内存中,然后在递归扫描我的图像目录时,它必须将找到的每个图像与此图像列表数组进行比较,以验证它是否已经在处理的列表中,然后构建一个未处理的列表文件,然后只处理这些文件
请分享你的想法、建议、批评等,我从来没有做过这样的事情
【问题讨论】:
标签: php